[英]Jquery .on() not triggering toggleClass function
I'm dynamically adding a column on click to a table with a similar class name with JS/Jquery as show below 我正在动态单击添加一列到具有与JS / Jquery相似的类名称的表,如下所示
$("#btn").click(function(){
$('#week_title').append('<th>Week '+count+'</th>');
count++;
$('.tag').append('<td class="highlight"><img src="plus.png"></td>');
});
Then once a column is dynamically added, on click on each cell I have a toggleClass() function to switch a css add_week_bg class function to display it being marked as show below 然后,一旦动态添加了列,则在每个单元格上单击时,我都有一个toggleClass()函数来切换一个css add_week_bg类函数,以将其显示为如下所示
$(".highlight").on("click", function(){
console.log('clicked')
$(this).toggleClass("add_bg");
});
My issue comes in to play once the a column has been dynamically added, and when that cell is clicked the .on() doesn't trigger. 一旦动态添加了列,并且单击该单元格时,.on()不会触发,我的问题就会出现。
Here is a JSFiddle http://jsfiddle.net/aqW6a/ 这是一个JSFiddle http://jsfiddle.net/aqW6a/
Thank you in advance. 先感谢您。
You need event delegation ( as .highlight being added dynamically ) 您需要事件委托( 因为.highlight是动态添加的 )
$('.tag').on("click",".highlight", function(){
console.log('clicked')
$(this).toggleClass("add_bg");
});
Demo ------>
http://jsfiddle.net/aqW6a/1/ 演示------>
http://jsfiddle.net/aqW6a/1/
Try http://api.jquery.com/on/ 尝试http://api.jquery.com/on/
$('.tag').on("click", ".highlight",function(){
console.log('clicked')
$(this).toggleClass("add_bg");
});
It's a selector problem, you should operate over a generic selector 这是一个选择器问题,您应该对通用选择器进行操作
$(document).on("click",".highlight", function(){
console.log('clicked')
$(this).toggleClass("add_bg");
});
Use event Delegation 使用事件委托
$(".tag").on("click",'.highlight', function () {
console.log('clicked')
$(this).toggleClass("add_bg");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.