我已经开始使用包含其中标题的div框。
我希望有一个toggle()
事件,当单击标题时,它会将标题字符串存储到变量中,更改该标题的HTML,并为包含parent()
div的parent()
div框设置动画它。
第二个功能是再次为html()
div框设置动画,并将HTML更改回原始文本(将其存储为变量。)
我遇到了麻烦,我不确定我的问题在哪里。我正在使用{{1}}来“获取”原始标题的字符串,我不确定这是否正确。我也不确定是否需要更多的预防措施来传递变量或正确调用变量。
请让我知道我做错了什么。非常感谢SO。
答案 0 :(得分:3)
您可以使用.data()
方法存储原始html http://jsfiddle.net/94nPv/3/
jQuery(document).ready(function($) {
$('h5').toggle(function() {
var $this = $(this);
$this.data('originalText',$this.html());
$this.parent('div.softwarebox').animate({ height: "700px" });
$this.html("Close");
}, function() {
var $this = $(this);
$this.parent('div.softwarebox').animate({ height: "19px" });
$this.html($this.data('originalText'));
});
});
略微优化(无需额外调用.html或.data):http://jsfiddle.net/94nPv/7/
jQuery(document).ready(function($) {
$('h5').each(function(){
var $this = $(this);
$this.data('originalText',$this.html());
});
$('h5').click(function() {
var $this = $(this);
if ($this.text() === "Close") {
$this.html($this.data('originalText'));
$this.parent('div.softwarebox').animate({
height: "19px"
});
}
else {
$this.text("Close");
$this.parent('div.softwarebox').animate({
height: "700px"
});
}
});
});