我的手风琴只针对“collapseLinks”类指定的锚元素
我试图用:not()
选择器排除类“vanilla”。 “vanila”类只是我想要表现正常的锚。现在当你点击“香草”锚时,它也会发射手风琴。任何帮助都会很棒!
$('a.collapseLinks').click(function() {
$("div.slider > a.collapseLinks").click(function() {
$(this).children(".slider > a.collapseLinks").toggle();
});
$(this).toggleClass('collapseLinksClicked');
});
// Stuff to do as soon as the DOM is ready;
$(".internal").hide();
$("input").attr("disabled", "disabled");
$(".slider:not(.vanilla)").click(function() {
$(this).next(".internal:not(.vanilla)").slideToggle();
}).toggle(function() {
$(this).children("span").text("-");
}, function() {
$(this).children("span").text("+");
});
答案 0 :(得分:0)
您的第一个“点击”处理程序是添加一个新的事件处理程序,每次单击,这些都不会覆盖以前的处理程序。仔细考虑你究竟想要做什么,并清理那种方法。根据您的描述,这是一个建议:
$('a.collapseLinks').click(function() {
$(this).next("div.slider").toggle();
$(this).toggleClass('collapseLinksClicked');
});
在1.6版本的每个jQuery版本中,禁用输入元素的正确方法是:
$("input").prop("disabled", true);
最后,你的第二个“点击”处理程序是找到'slider'元素(我假设所有这些元素都是<div>
个元素),然后尝试过滤掉'vanilla'元素(我假设是全部{ {1}}元素)。此外,.toggle
没有签名将两个函数作为参数。
<a>
答案 1 :(得分:-1)
您应该在不想传播的处理程序中使用stopPropagation:http://api.jquery.com/event.stopPropagation/
$("a.vanila").click(function(event){
event.stopPropagation();
// do something
});
干杯。