我遇到了为我发现的折叠text-jquery插件创建转换的问题。 Unfortunatley我几乎不了解javascript。在底部,我添加了“&&(this).show('fast');”但它不起作用。希望你能提供帮助。
$(document).ready(function () {
var maxheight=16;
var showText="Weiterlesen";
var hideText="Zusammenklappen";
$('.expand').each(function () {
var text = $(this);
if (text.height() > maxheight){
text.css({ 'overflow':'hidden','height': maxheight + 'px' });
var link = $('<p class="weiter" id="noselect"><a>' + showText + '</a></p>');
var linkDiv = $('<div></div>');
linkDiv.append(link);
$(this).after(linkDiv);
link.click(function (event) {
event.preventDefault();
if (text.height() > maxheight) {
$(this).html('<a>' + showText + '</p>');
text.css('height', maxheight + 'px')
&&(this).show('fast');
} else {
$(this).html('<a>' + hideText + '</p>');
text.css('height', 'auto')
&&(this).show('fast');
}
});
}
});
});
答案 0 :(得分:0)
尝试将其更改为此
$(this).html('<a>' + hideText + '</p>');
text.css('height', 'auto');
$(this).show('fast');
这是使用正确的JQuery语法,它是否有效取决于“this”是什么。
答案 1 :(得分:0)
(this).show();
不会工作。这是一个 HTML元素,它没有 show 属性。你想要jquerys对象属性。
jQuery(this)//get the jquery object of that html el
.show();//call the function on that
$只是jQuery的缩写。所以:
$(this).show();
注意这个是链接,但你想显示文本(它已经是一个jquery对象):
text.show();
关于&amp;&amp; (AND运算符):
false && alert("nope");
true && alert("yes");
a() && b(); //b is just called if a() is truthy => can create bugs in your case
在这里使用此运算符不是必需的/有用的。但是,您可以使用逗号运算符,但通常只使用两个语句...
但是,如果你说得对,它不是 show 所必需的,而是添加转换。这可以用css完成:
.expand{
transition:all 2s ease;
}
请注意,这对高度不起作用,但对于最大高度,可以设置高度:自动并将最大高度从0px更改为500%...