javascript - 单击更改 Div 类需要多次单击才能生效

标签 javascript jquery html css

我在这个问题中使用了方法: change div class onclick on another div, and change back on body click

所以这是我的 jQuery 函数:

jQuery('.checkbox_wrapper').on('click', function(e){
   jQuery(this).parent()
   .toggleClass('not_selected')
   .toggleClass('selected'); 
});

但是它似乎并没有正常工作。在类更改之前需要多次点击。

查看我的 jsfiddle: http://jsfiddle.net/7A3vw/

我认为它可能与 javascript 冲突,所以我将其精简到最基本的部分,但即使使用单个函数,在类实际更改之前也需要多次单击。因为生产环境有1 click toggle a hidden checkbox,多次点击是不合理的。

谁能帮我找出导致此问题的原因?

最佳答案

点击函数会触发两次,一次针对图像,一次针对输入,因为两者都会冒泡到父元素,并且触发两次会再次还原类 (proof)。

只需定位图片即可,因为这是您真正想要点击的内容,而不是父图片:

jQuery('.deck_card img').on('click', function (e) {
    jQuery(this).closest('div').parent().toggleClass('not_selected selected')
});

FIDDLE

关于javascript - 单击更改 Div 类需要多次单击才能生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17804325/

相关文章:

php - 使用 Laravel 对重复电子邮件进行 Jquery 验证

javascript - 在 jQuery 中, `this.element` 和 `this.element[/* some number */]` 有什么区别?

html - CSS margin 恐怖;边距在父元素外部添加空间

javascript - 如何将函数绑定(bind)到嵌入上的单击事件

javascript - 如何在 javascript 文件中使用自定义 xml 实体

javascript - 地理定位在本地工作但不在远程服务器上

c# - XAML 到 HTML 的转换 - WPF RichTextBox

javascript - 使用另存为对话框将 HTML 表格数据导出到 Excel (JQuery)

javascript - 如何获取类中的上一个/下一个元素

javascript - 前端库智能解析 "Collection+JSON"