JQuery单击(function()位置

时间:2011-07-25 15:12:42

标签: jquery

总是需要将click事件放在(document).ready(function()下面作为例子,因为我看到了click(函数()位于它之外,我想知道如何做到这一点< / p>

$(document).ready(function(){

    $('#checkout').click(function() {

        alert("Thanks for visiting!");
    });

});

6 个答案:

答案 0 :(得分:1)

它不必在就绪功能内。

这只是确保在事件附加到节点之前加载了所有内容。

答案 1 :(得分:1)

它不需要在$(document).ready();中。它和任何javascript一样。它需要放在它将访问的元素之后,或放在$(document).ready();中。如果您将脚本直接放在要添加的元素后面,则可以加快点击事件的速度:http://encosia.com/dont-let-jquerys-document-ready-slow-you-down/

答案 2 :(得分:0)

click函数可以放在任何位置,对选择具有相同的效果($)。

选择功能需要以可以选择所需节点的方式放置。如果{DOM}树中选择的内容之前有script标记,则需要等待文档准备就绪或窗口已完成加载,然后选择才会成功。

以下内容可行:

JS

$('#foo').click(...);

HTML

<div id="foo"></div>
<script src="location/script.js"></script>

但是如果你改变HTML,那就不行了:

<script src="location/script.js"></script>
<div id="foo"></div>

执行脚本时,id为foo的元素尚不存在。这就是您通常在document ready事件回调中包装事件处理程序的原因。

答案 3 :(得分:0)

如果您在此jquery点击事件之前放置#checkout,则可以不使用.ready()

http://sandbox.phpcode.eu/g/fb8e7.php

答案 4 :(得分:0)

.click方法将click事件的处理程序绑定到某个元素。 如果它在$.ready方法内,则在加载DOM之后将执行绑定。否则 - 绑定将立即执行。结果 - 没有区别。您的按钮(或其他)将在点击事件

上正常工作

P.S。如果您将.click方法放在$.ready之外且在您的元素(事件目标)写入之前可能会出现问题

答案 5 :(得分:0)

您可以使用the jQuery live() event来扩大您可以放置​​它的可能性。