我正在尝试通过我在jQuery中添加的类名来定位元素。如果我添加一个新元素,这似乎工作正常,但我无法将新事件绑定到已经在DOM中的元素,但已被更改。
我做错了什么?
$(document).ready(function(){
$(".activateRow").on("click",function(){
$(this).text('Deactivate').addClass('deactivateRow btn-danger').removeClass('activateRow btn-success');
$(this).parent().parent().removeClass('inactiveRow');
});
$(".deactivateRow").on("click",function(){
$(this).text('Activate').removeClass('deactivateRow btn-danger').addClass('activateRow btn-success');
$(this).parent().parent().addClass('inactiveRow');
});
})
答案 0 :(得分:5)
要绑定到新元素,请使用委托:
$(document.body).on("click", ".deactivateRow", function(){
答案 1 :(得分:1)
您的代码看起来有点乱,我建议您使用数据api,您的元素可以使用data-nameOfYourAttribute ='Value'设置属性。您可以在jquery中使用它,如下所示: //这是一个getter / setter $( '#myElement')。数据( 'nameOfYoutAttribute')
对于你的问题,你可以这样做:
$('.myRows').on('click', function() {
if($(this).data('activated') == false) {
//Do stuff
$(this).data('activated', true);
} else {
//Do stuff
$(this).data('activated', false);
};
});
希望有所帮助