2

我有我能写的最简单的 .on 函数。它开始是试图在加载时验证表单,然后经过几分钟的挫折,我尝试了以下操作:

  $('p').on('load',function(){
     console.log("hello"); 
  });

这甚至行不通。我很困惑。我在内外都试过了$(document).ready(),都不管用,我还检查了控制台,我的 JS 没有错误。

是什么原因造成的,这让我很生气

4

3 回答 3

1

jQuery 没有办法在特定元素第一次可用时触发事件。您可以使用 setInterval 来执行此操作,但通常有更好的方法来处理它,具体取决于具体情况。

setInterval(function(){
    $("p").not(".alreadyloaded").trigger("load").addClass("alreadyloaded");
},100);
$(document).on('load','p',function(){
    console.log("hello"); 
});

如果可能的话,我不建议使用这种方法。

更好的处理方法是使用添加 p 元素的事件的回调(例如 or 的成功.load()$.ajax或绑定委托事件,例如$(document).on('click','p',function(){ alert('hello'); });

于 2012-07-27T19:41:49.107 回答
1

ps、divs 和其他元素没有load-event - 这仅适用于图像、窗口、框架和 iframe。

于 2012-07-27T19:42:18.523 回答
1

演示

您始终可以使用以下命令检查是否存在length

var par = $('p.paragraph'); // make it special with some ID or class


if(par.length){         // If your elements exists....
   alert(" I'm 'LOADED!' ;) ");
}
于 2012-07-27T19:44:24.357 回答