动态添加的元素,设置监听事件;input:text事件只触发一次
之前上网搜索过,好像高版本的jquery就把bind,live等等这些都抛弃掉了。都要统一使用on来控制监听。
总之,我对动态添加的元素设置监听,发现就on函数好使。代码如下:
$('.modal-body thead').on('change','select',function(){
$(this).parent().find('th input').prop('checked','checked');
$(this).parent().find('th input').attr('checked','checked');
});
其中thead是已经存在的元素,而select元素是在其之下动态产生的子类元素。总之,这两个选择器的设置应该是,第一个是已经存在的父类元素(这里我感觉应该到最低的一级),而第二个应该是未来动态的产生的元素。
这两个参数只要是符合jquery选择器的语法就可以。
而针对于<input type="text">这种元素,按照以上写法只会触发一次事件。正确写法如下:
$('.modal-body thead').off('change','tr :text').on('change','tr :text',function(){
$(this).parent().find('th input').attr('checked',true);
$(this).parent().find('th input').attr('openid',$(this).val());
});
具体原理我也不懂,大概是先解绑,再重新绑定事件。