1

有人可以解释以下语法吗

$(function(){
    $(".myPage").live("click", myHandler);  // NOT THIS BIT!!
});

它看起来是全局定义的,如果这有什么不同吗?

4

3 回答 3

2
$(function(){});

jQuery.fn.ready的缩写。

如果您正在使用乘法框架,$那么它非常聪明,它会将 jQuery 作为第一个参数发送给回调:

jQuery(function($) {
    // $ is here 100% synonym for jQuery. 
});

在回调中,您将事件绑定到选择器.myPage。但事实上,您正在将选择器绑定到文档,然后检查 event.target 或 event.target.parentN 是否与选择器匹配:

伪代码:

$(document).on("click", function(event) {
    if ( $(event.target).is(".myPage") || $(event.target).closest(".myPage") ) {
        // call my original callback (myHandler)
    }
}); 
于 2012-11-16T10:48:10.690 回答
1

$(somefunction)要求 jQuery 在 DOM 准备好后执行该somefunction函数。

文档中

这个函数的行为就像 $(document).ready(),因为它应该用于包装页面上依赖于准备好的 DOM 的其他 $() 操作。虽然从技术上讲,这个函数是可链接的,但链接它并没有太多用处。

它确保您不会在 DOM 对象可用之前尝试访问它们。将主代码嵌入到这样的回调中,在正文末尾的脚本元素中是一种很好的做法。

请注意,您可能有不同的脚本添加此类块。所有回调都将按照插入的顺序执行。当您拥有包含许多脚本的大型应用程序时,了解这一点尤其重要。

于 2012-11-16T10:47:34.437 回答
0

此函数正在为现在和将来匹配当前选择器 (.myPage) 的所有元素附加一个事件处理程序 (myhandler)。在http://api.jquery.com/live/上阅读更多关于 live 的信息

于 2012-11-16T10:48:35.013 回答