我在.on()
jquery处理程序上创建了一些东西,比如
$('#idhere').on('click', function(){
//create a couple of divs with a class
});
现在我还想在创建的div上添加一个事件,我试过了:
$('.divcreated').bind('mouseover', function(){
//do some magic
});
由于某种原因,第二个事件永远不会被触发,因为它们都是异步的。任何触发第二次事件的想法?
答案 0 :(得分:1)
如前所述,当您尝试注册mouseover事件时,不会创建新的div。所以,你可以尝试这样的一个div:
$('#idhere').on('click', function(){
// creates the new div and assigns it to the $myNewDiv var
var $myNewDiv = $( "<div></div>" );
// register the event...
$myNewDiv.on( "mouseover", function( event ) { ... });
// add $myNewDiv to a container
});
我认为现在你可以编写你的解决方案了。
答案 1 :(得分:1)
绑定时必须存在一个元素,因此您必须在创建元素或使用委托后绑定它 -
使用委托jQuery 1.7 +
$('body').on('mouseover', '.divcreated', function(){
//do some magic
});
将事件处理程序绑定到body
- 在绑定事件时存在 - 这是在dom准备就绪。但是,它更有效地绑定到更接近的静态父元素。