我试图寻找答案,但我的措辞与使用 jQueryon()
方法寻找事件委托的问题太相似了。因此,请不要对我的问题的措辞感到困惑。
鉴于我编写 jQuery 应用程序的经验,我实际上问这个问题我感到很惭愧,但我必须承认我实际上并不知道这个问题的答案:-(
考虑一下:
// Create the div
$('#wrapper').prepend('<div id="test"></div>');
// Add content to the div, and attach events
// Only execute it once the div has been created though, so wait 20 milliseconds
setTimeout(function(){
// Add some button
$('#test').html('<button></button>');
// Add an event to the button
// ... after 20 milliseconds
setTimeout(function(){
// Attach the click event
$('#test button').click('dosomething');
});
},20);
在上面的代码中,我不得不使用setTimeout
来确保在选择元素并添加内容、事件等之前已经创建了元素......
我的问题很简单,有没有更好的方法来做到这一点?没有超时?
请注意我不是说,有没有更好的方法来编写上面的确切代码?我只是想知道是否有办法避免由于指定的原因使用超时。