我有以下代码:
CAGTGCACACAACACATGTATGTG 24
(50-24)/2 = 13
和$(document).bind('click', '.btn-yes .btn-no', function() {
$(this).toggleClass("btn-warning");
alert("test"); // <-- this works...
});
是两个附加到按钮的类。单击它们后,我希望.btn-yes
类附加到该按钮,但这不起作用...
有谁能让我知道我做错了什么?
答案 0 :(得分:2)
您需要在选择器之间加上逗号,
:
'.btn-yes, .btn-no'
并且只有在页面加载后动态生成元素时才应使用事件委派。
如果出现这种情况,那么根据最新的jQuery库,首选方法是.on()
。您可以在下面的代码段中看到这一点。
$(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;
如果您未在选择器中使用逗号,
,例如在这种情况下,您实际上是在尝试绑定具有父.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");
});