Jquery .on() 方法不起作用
Jquery .on() method not working
小提琴
请看上面的小提琴。.on 方法似乎不起作用。我确定我一定错过了一些明显的东西。?
.JS
var rand;
$('button').click(function(){
rand = Math.floor((Math.random() * 100) + 1);
$('#maindiv').append('<div style="cursor:pointer" id="dyn_user_'+rand+'">'+rand+'</div>');
});
$("[id^='dyn_user_']").on('click',function(event){
console.log('On method!');
$('#maindiv').append('<div style="cursor:pointer" id="dyn_user_"'+rand+'">'+rand+'</div>');
});
我的主要目标是尝试查看 .on(( 中是否在 .on(( 中生成相同的元素(在本例中为 id="dyn_user_somerandnumber 的"div"(。但是我被.on((方法无法正常工作所困扰。如果听起来令人困惑,我很抱歉。
您需要对动态添加的元素使用事件委派。因此,您应该使用以下语法绑定到现有元素:
$('#maindiv').on('click',"[id^='dyn_user_']",function(event){
console.log('On method!');
$('#maindiv').append('<div style="cursor:pointer" id="dyn_user_"'+rand+'">'+rand+'</div>');
});
js小提琴示例
在绑定 click 事件时,[id^='dyn_user_']
不存在,因此没有任何绑定。 您必须将事件绑定到现有元素,然后使用筛选器使其仅针对所需的元素发生。 喜欢这个:
$(document).on('click',"[id^='dyn_user_']", function(event){
console.log('On method!');
$('#maindiv').append('<div style="cursor:pointer" id="dyn_user_"'+rand+'">'+rand+'</div>');
});
工作小提琴:http://jsfiddle.net/v0u7yv2o/2/
相关文章:
- Meteor-添加用户自定义字段的方法不起作用
- 在 JQUERY 中创建 HTML 后,Jquery 方法不起作用
- 为什么这个扩展方法不起作用
- Splice()方法不起作用
- Angularjs-向工厂传递数据的方法不起作用
- Knockout和bread.js的take方法不起作用Paging
- javascript注入$http-post方法不起作用
- 为什么pulk()和where()方法不起作用
- Ajax get 方法不起作用
- 当我将javascript代码放在外部站点.js文件中时,Ajax页面方法不起作用
- getJSON 方法不起作用
- Jquery ajax get 方法不起作用
- jQuery AddClass 方法不起作用
- ScriptManager.RegisterStartupScript() 方法不起作用 - ASP.NET,C#
- 为什么JavaScript方法不起作用
- 为什么 findRandom() mongoose for node.js 方法不起作用
- BackboneJS的设置方法不起作用
- 从javascript调用 asp.net 页面方法不起作用
- 主干.js对以前的方法不起作用进行建模
- toExponential() 方法不起作用