2

我想知道任何人都可以在代码中为我解释这一行。

        $(this).bind('click', {src: $(this).attr('href')}, function (e){
           //commented out since it's irrelevant                    
        });

这是我的理解:

将函数绑定到 $(this) 的点击事件。e 参数也被传递给函数。然而,这对我来说没有意义的中间部分

                     {src: $(this).attr('href')}

这是做什么的?我尝试用谷歌搜索冒号在 jquery 中的作用。但是我得到了 li:first 结果。

4

6 回答 6

6

这是 javascript 对象表示法:

var object = {propertyName : propertyValue};

它描述了一个对象字面量

于 2013-02-26T21:50:43.873 回答
5

{src: $(this).attr('href')}是一个对象文字,您将一个对象.bind作为第二个参数传递给函数。这样做会将所述数据传递到事件处理程序中,您可以在事件发生时使用它访问它,event.data.src或者e.data.src在您的情况下,因为使用使用function (e)...

于 2013-02-26T21:52:00.470 回答
3

这就是您定义对象(称为对象字面量)的方式。例如,如果:

obj = { src: "Source" };

然后 obj.src 将包含“源”。

于 2013-02-26T21:52:24.160 回答
2

您正在提供具有属性 src 的内联对象。src 的值为$(this).attr('href');您无法找到 jquery 特定文档的原因是这是 javascript 本身存在的约定。

于 2013-02-26T21:51:26.350 回答
1

bind 的文档中,第二个参数:

eventData
    Type: Object
    An object containing data that will be passed to the event handler.

所以,你正在传递一个对象。src:语法表示该对象的成员,其名称为src

于 2013-02-26T21:50:59.490 回答
1

这只是在事件对象中传递给回调的附加信息,可以使用以下方法访问:

// callback function
function(e){ 
    alert(e.data.src);
}
于 2013-02-26T21:53:11.883 回答