的jQuery手风琴
问题描述:
伙计们, supressed Click事件我有一个包含在它的头一个复选框手风琴面板:的jQuery手风琴
<div id="accordion">
<h3><a href="#"><input type='checkbox' id='chkbox'/>First header</a></h3>
<div>First content</div>
<h3><a href="#">Second header</a></h3>
<div>Second content</div>
</div>
现在,当我在点击复选框,通过jQuery的使用event.preventDefault抑制click事件。因此我无法获得复选框状态的改变。我试过下面的招数,但没有运气:
$("#accordion").accordion();
$('#chkbox').live('click',function(){
var checkbox = $(this).find(':checkbox');
checkbox.attr('checked', !checkbox.attr('checked'));
});
请帮忙!! 看到代码http://jsfiddle.net/teBfb/1/ 感谢
答
你与
.attr('checked', !$checkbox.attr('checked'));
做什么应该工作。这意味着你的选择器被破坏。你为什么要在变量名中使用$符号?它可能会混淆jQuery。
答
您可以使用stopPropagation,以便您的复选框单击事件不会上链。
$("#accordion h3 input").click(function(e) {
e.stopPropagation();
});
答
$(function() {
$("#accordion").accordion({
collapsible: true,
});
});
$("#accordion h3 input").click(function (e) {
var checkedStatus = $(this).prop('checked');
e.stopPropagation();
if (checkedStatus) {
$("#accordion div div").slideUp();
$(this).parent().next().slideDown();
}
else {
$("#accordion div div").slideDown();
$(this).parent().next().slideUp();
}
});
试试这个
即使你删除$,仍然没有工作 – leo