【发布时间】:2014-09-29 17:48:05
【问题描述】:
我正在尝试使用 slideToggle() 函数将“越来越少”的行为应用于包含“.more”类的段落:
html代码:
<p class="more">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut...
<span class="HiddenText" style="display: none;">
aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim
id est laborum.
</span>
<a class="readmore" href="" style="display: block;">show more</a>
</p>
这是我的 JS 代码:
$(document).ready(function() {
$('.readmore').click(function(){
var text = $(this).text() == 'show more' ? 'show less' : 'show less';
$(this).text(text);
$(this).prev().slidetoggle();
// here the problem
// $(this).prev() eq $('.hiddenText')
// slideToglle transforme "display:none" property to "display:inline-block"
return false;
});
});
我将 slideToggle 函数应用于 span.hiddenText 元素,但是这个函数将“display: none”转换为“display: inline-block”,我想在“display: none”和“display: inline”之间切换。
点击行为:使用 slideToggle() 函数:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
onclick 行为:使用 toggle() 函数:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi utaliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
问题:slideToggle 函数在段落中创建返回线。
通常,由于我使用了 display 属性为内联的 span,因此 slideToggle 必须使用 display:inline 而不是 display:inline-block。
注意:当我使用 toggle() 代替 slideToggle() 时,它工作得很好(显示:无显示:内联)
如何在 display:none 和 display:inline 之间使用 slideToggle?
【问题讨论】:
-
能否也包含 HTML?一个 jsfiddle 也不错。
-
HTML 是带有 class="more" 的段落
-
除了 JS 代码块中的几行之外,我在您的帖子中实际上没有看到任何 HTML 标记。请提供一个 HTML 标记块,如果可以的话,请提供一个包含您的代码的 jsfiddle,以便其他人可以轻松使用它。
-
你可以将点击事件绑定到 .css({"display" : "none"}) 和 .css({"display" : "inline"})然后切换.css?
标签: javascript jquery html jquery-ui