我有问题第一次在click.ready()中运行click事件或任何其他事件吗? 我的意思是在没有第一次点击的情况下将DOM元素加载到评论后会达到吗? :)
$(document).ready(
$(#foo).click(
function()
{
// "It reached here after DOM is loaded!"
}
)
)
答案 0 :(得分:4)
document.ready在DOM完全加载时触发,因此你是正确的。
然而,除非单击绑定元素或使用click()或Events/trigger显式调用click事件,否则不会触发'click'事件:
$('#foo').click();
$('#foo').trigger("click");
您是否阅读过document.ready的手册页?参见:
http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
答案 1 :(得分:3)
不,该功能不会被执行。
有一些错误:
$(document).ready()将函数作为参数。 '#foo'也应该是一个字符串。
$(document).ready(function() {
$('#foo').click(
function()
{
// "It reached here after DOM is loaded!"
}
)
})
如果您希望在dom加载后至少评估一次该功能。那么最简单的方法可能就是命名你的功能。
例如:
$(document).ready(function() {
$('#foo').click(
function myfunction()
{
// "It reached here after DOM is loaded!"
}
);
myfunction();
})
如果需要在$('#foo')范围内执行该函数,可以使用Function.call()方法执行此操作。
例如:
$(document).ready(function() {
$('#foo').click(
function myfunction()
{
// "It reached here after DOM is loaded!"
}
);
myfunction.call($('foo'));
})
这会使它的行为更像是由DOM事件触发的行为。我确信JQuery有一个特定的方法来触发通过它的DOM事件函数注册的事件。它也可以是一个选项,因为它可能也会模拟传递给“myfunction”的事件对象。
答案 2 :(得分:0)
为了概括这个问题,通过将事件类型(onclick,onkeyup,onfocuse等)与一个函数(或多个函数)相关联来处理JavaScript事件。当然,该函数已被解析,但在关联事件发生之前不会对其进行求值。此外,在此上下文中,“函数”通常称为事件处理程序或事件回调。