【发布时间】:2011-04-19 23:28:34
【问题描述】:
我正在尝试完成包含几个不同元素的事情,每个元素我都可以单独工作,但是当我尝试将它们结合起来时,我什么也得不到。
目标:
1) 在列表项文本悬停时,切换/淡化描述 div。
2) 单击列表项文本时,“pin”描述 div
3) 单击相同的列表项,“取消固定”描述 div
4)单击不同的列表项时,“取消固定”已固定的任何内容以使其淡出,并“固定”新项目以使其粘住。
我有一个这样的列表:
<ul>
<li><a href="http://foo.com">foo</a>
<div class="description">some text to be revealed</div>
</li>
<li><a href="http://foo.com">foo</a>
<div class="description">some text to be revealed</div>
</li>
</ul>
这是我目前拥有的 jquery:
$(function() {
//creates toggle fade effect
jQuery.fn.fadeToggle = function(speed, easing, callback) {
return this.animate({opacity: 'toggle'}, speed, easing, callback);
};
$(".thumblist li").hover(function() {
if(!$(this).data('pinned'))
$(this).children(".description").fadeToggle();
});
$(".thumblist li").click(function() {
$('.liselected').removeClass('liselected');
$(this).children('.description').addClass('liselected');
$(this).data('pinned', !$(this).data('pinned'));
});
});
除了最后一项,我一切正常。我尝试从所有列表项中删除 .liselected 类,然后将其添加到当前的 onclick 中,但它失败了。有什么想法吗?
【问题讨论】:
标签: jquery list select hover toggle