您当前的选择器$('li p a')
在整个文档中搜索锚点,这些锚点是 li 的子项,而 li 是段落的子项。您需要确保仅在.trigger
元素内进行搜索。
见http://api.jquery.com/find/
$('.trigger').click(function() {
var trigger = $(this); // Store the clicked object in a variable and convert to jQuery object
trigger.children('.hidden').toggle('slow', function() {
if ($(this).is(':visible')) {
trigger.find('.plus').hide(); // trigger.find() allows us to search using our CSS selector only within the trigger object.
trigger.find('.minus').show();
} else {
trigger.find('.plus').show();
trigger.find('.minus').hide();
}
});
return false;
});
http://jsfiddle.net/NYZa3/1/
也可以这样写:
$('.trigger').click(function() {
var trigger = $(this); // Store the clicked object in a variable and convert to jQuery object
trigger.children('.hidden').toggle('slow', function() {
trigger.find('.plus, .minus').toggle();
});
return false;
});
http://jsfiddle.net/NYZa3/4/
或者整个东西可以被链接起来(.plus
and.minus
将在单击后立即切换,而不是在显示/隐藏动画完成后切换):
$('.trigger').click(function() {
$(this)
.children('.hidden')
.toggle('slow')
.siblings('p')
.find('.plus, .minus')
.toggle();
return false;
});
http://jsfiddle.net/NYZa3/5/