在查看其他问题并尝试许多可能的解决方案之后,我仍然无法获得点击事件的正确绑定,并且非常感谢任何帮助。我正在开发一个与api交互的网页,而不是服务器,只是进行ajax调用。Jquery .on()方法不能在动态创建的元素上工作
这是我的HTML:
<div class = "img image-1 onTop" style="width:300px;left:0px">
<div class = "pallette-container">
<div class = "color-sample">
<div class = "color-overlay">
<p>#55423</p>
</div>
</div>
</div>
</div>
我动态地创建这些“IMG”的div和所有的孩子申报单时,我得到的数据,从一个Ajax请求回。
我需要绑定一个点击事件函数'div.color-overlay'元素。
我已经尝试了很多不同的方式来绑定它,并且达到了我认为是使用选择器来抓取元素的最具体方法。
这里是我写的函数:
$('div.img.onTop.image-1>div.palette-container').on('click', 'div.color-sample>div.color-overlay',function(event){
var searchValue = $(this).parent().attr('data-color');
$('#colorvalue').val(searchValue);
});
请帮助我了解什么是错的。我没有合乎逻辑的尝试。非常感谢!我正在使用Jquery 2.1.3。
代码对我来说看起来很好。你确定点击事件没有受到任何限制吗?在你的函数里放一个'console.log',看看它是否被点击登录。我假设你认为这不起作用,因为事件没有约束。我看到别的东西。我发现'div.color-sample'元素没有'data-color'属性。 :)这就是为什么它似乎无法正常工作/ – AdityaParab
我看不到HTML中的数据颜色属性。 –
你可以添加你如何在DOM – Tushar