如何使用bind事件在按钮单击时获取当前/此对象?

时间:2015-11-17 07:43:08

标签: javascript jquery

我有以下代码:

CAGTGCACACAACACATGTATGTG  24

(50-24)/2 = 13 $(document).bind('click', '.btn-yes .btn-no', function() { $(this).toggleClass("btn-warning"); alert("test"); // <-- this works... }); 是两个附加到按钮的类。单击它们后,我希望.btn-yes类附加到该按钮,但这不起作用...

有谁能让我知道我做错了什么?

4 个答案:

答案 0 :(得分:2)

您需要在选择器之间加上逗号,

'.btn-yes, .btn-no'

并且只有在页面加载后动态生成元素时才应使用事件委派。

如果出现这种情况,那么根据最新的jQuery库,首选方法是.on()。您可以在下面的代码段中看到这一点。

&#13;
&#13;
$(document).on('click', '.btn-yes, .btn-no', function() {
  $(this).toggleClass('btn-warning');
});
&#13;
.btn-warning{background:red; color:yellow;}
&#13;
<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>
&#13;
&#13;
&#13;

问题:

如果您未在选择器中使用逗号,,例如在这种情况下,您实际上是在尝试绑定具有父.btn-no的子.btn-yes上的点击事件}。

答案 1 :(得分:0)

试试这个:

$(document).bind('click','.btn-yes .btn-no',function(e){
        $(e.target).toggleClass("btn-warning");
});

答案 2 :(得分:0)

'.btn-yes .btn-no'表示btn-no里面的btn-yes不是单独的元素。因此,使用逗号分隔元素并使用click事件。

我还建议您使用on而不是绑定方法:

$(document).on('click', '.btn-yes, .btn-no', function(){
    $(this).toggleClass("btn-warning");
});

答案 3 :(得分:0)

如果你有jquery版本1.7+使用on方法

$(document).on('click', '.btn-yes,.btn-no', function() {
    $(this).toggleClass("btn-warning");

});