Jquery Accordian 抑制点击事件
各位, 我有手风琴面板,其标题中包含一个复选框:
<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 抑制单击事件。因此我无法更改复选框状态。我尝试了以下技巧但没有成功:
$("#accordion").accordion();
$('#chkbox').live('click',function(){
var checkbox = $(this).find(':checkbox');
checkbox.attr('checked', !checkbox.attr('checked'));
});
请帮助! 请参阅代码 http://jsfiddle.net/teBfb/1/ 谢谢
Folks,
I have accordian panel which contains a checkbox in its header :
<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>
now when i click on checkbox, the click event is suppressed by jquery using event.preventDefault. Consequently I can not get checkbox state changed. I tried following trick but no luck:
$("#accordion").accordion();
$('#chkbox').live('click',function(){
var checkbox = $(this).find(':checkbox');
checkbox.attr('checked', !checkbox.attr('checked'));
});
Please help!!
see the code http://jsfiddle.net/teBfb/1/
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你正在做的事情
应该有效。这意味着您的选择器已损坏。为什么在变量名中使用 $ 符号?它可能会让 jQuery 感到困惑。
What you are doing with
should work. Which means your selector is busted. Any reason why you're using $ signs in variable names? It might confuse jQuery.
您可以使用 stopPropagation 这样您的复选框单击事件就不会沿着链向上移动。
http://jsfiddle.net/teBfb/6/
You could use stopPropagation so your checkbox click event doesn't go up the chain.
http://jsfiddle.net/teBfb/6/
试试这个
try this