本人在jQuery中还是个新人,然后今天写代码测试的时候发现了如题目所说的那种状况,写了一个click() 事件,
但是却没有点击后的效果或现象。之前写的代码如下:
$('.search-item').click(function(){ //someting 这里就不写里面具体代码了,反正就是功能效果。 });然后我想了下会不会是没有点击事件,然后我在代码中增加了一行显示控制台的一条信息:
$('.search-item').click(function(){ console.log("hahah"); //someting });
发现控制台并没有 “hahah”出现,我就排除了我something中的代码出错,而是这点击事件根本没进去函数里面
执行代码,但是在排除了类名‘.search-itme’没有写错后,我就认为这也不是没有进入click函数里面,而是click函数
根本就不好使,或者浏览器不兼容了。随后我想了一下这个search-item的类是用过某一个点击事件用append()函数
而添加的元素,所以我想这应该click()函数对于这种情况不起作用,然后我把click()函数更改成 on()函数:
$('.search-item').on('click',function(){ console.log("hahah"); //someting }
尝试了一下,结果还是不行,并没有出来“hahah”,这时候苦恼的我纠结很久后又上网查了下jQuery on()函数的用法,和相关问题,然后在一个某博客园看到了某篇文章,里面写了一点:“on()方法,要绑定到父级或者 body”,这句话就是针对我这种情况的,search-item是通过点击事件新增的元素,然后再点击search-item元素的话就要把它通过父级来绑定on()方法:
$('.mid').on('click','.search-item',function(){ console.log("hahah"); //something });
这里 ‘mid’是search-itme 的父类,我把它绑定给mid父类,然后我再次打开控制台,点击, “hahah”出来了!终于把这
问题解决,也花了不少事件啊。。