如何使用绑定事件在按钮单击时获取当前/this对象
How to get the current/this object on button click using bind event?
我有以下代码:
$(document).bind('click', '.btn-yes .btn-no', function() {
$(this).toggleClass("btn-warning");
alert("test"); // <-- this works...
});
CCD_ 1和CCD_。单击它们时,我希望btn-warning
类附加到该按钮,但这不起作用。。。
有人能告诉我我做错了什么吗?
您需要在选择器之间使用逗号,
'.btn-yes, .btn-no'
只有当元素是在页面加载后动态生成的时,才应该使用事件委派。
如果是这样的情况,那么根据最新的jQuery库,首选方法是.on()
。您可以在下面的代码段中看到这一点。
$(document).on('click', '.btn-yes, .btn-no', function() {
$(this).toggleClass('btn-warning');
});
.btn-warning{background:red; color:yellow;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class='btn-yes'>Yes</button><button class='btn-no'>No</button>
问题:
当您在选择器中不使用逗号,
时,例如在本例中,您实际上是在尝试将单击事件绑定到具有父.btn-yes
的子.btn-no
上。
试试这个:
$(document).bind('click','.btn-yes .btn-no',function(e){
$(e.target).toggleClass("btn-warning");
});
'.btn-yes .btn-no'
表示btn-no内部的btn-yes不分离元素。所以,用逗号分隔元素,并使用click事件。
我还建议您使用on而不是绑定方法:
$(document).on('click', '.btn-yes, .btn-no', function(){
$(this).toggleClass("btn-warning");
});
如果您有jquery版本1.7+,请使用.btn-yes
0方法
$(document).on('click', '.btn-yes,.btn-no', function() {
$(this).toggleClass("btn-warning");
});
相关文章:
- Backbone虹吸以获取对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 使用fabric.js从矩形区域获取对象,并将该区域绘制到画布上
- Undercore.js获取对象数组中键对象的值
- 从数组中获取对象
- 在Sahi中获取[对象]作为按钮值
- 如何从jquery自动完成中获取对象值
- 从数组NodeJs中获取对象值
- 如何在javascript中在运行时获取对象/数组
- 从Javascript中谓词的数组中获取对象
- 如何获取对象名称
- 打字.如何获取对象'的属性名称与其值不同
- 扩展引导程序的typeahead以便获取对象而不是字符串
- 正在获取对象内部数组中的对象总数
- JavaScript:获取对象的评估属性
- minko从dom获取对象
- 如何获取对象
- 从类内部获取对象名称(JavaScript)
- 如何获取对象名称
- 获取对象的所有可能组合,其中值的总和与数字匹配