2013-02-26 60 views
2

我想知道任何人都可以在我的代码中解释这一行。在src之后的jquery中,这个冒号是什么?

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

这里是我如何理解:

绑定的功能,以$(本)的单击事件。 e参数也传递给函数。然而它的中间部分对我没有意义

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

这是干什么的?我试着google'ing冒号在jQuery中。然而我得到李:第一个结果。

回答

6

它的JavaScript对象符号:

var object = {propertyName : propertyValue}; 

它描述的对象literal

+0

指定什么{SRC:$(本).attr( 'href' 属性) }是... 我相信它会向您返回点击链接href的值。这会给你一个最有可能的网址。 您可以通过使用点符号来访问它obj.src会给你链接 – iAmClownShoe 2013-02-26 21:52:56

+0

@axrwkr这将创建一个新的对象与一组新的属性。如果你的意思是尽可能多的事件数据,它会被存储在'eventObject .data'属性来避免这些问题。 – 2013-02-26 22:03:58

+0

明白了!谢谢! – Matt 2013-02-26 22:38:45

1

docs for bind,第二个参数:

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

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

2

你正在提供一个带有属性src的内联对象。 src的值为$(this).attr('href');您无法找到jQuery特定文档的原因在于,这是一种存在于JavaScript本身中的约定。

5

{src: $(this).attr('href')}是一个对象字面量,您将一个对象作为第二个参数传入.bind函数。这样通过所述的数据到这个事件处理,其中当事件发生时使用event.data.srce.data.src在你的情况下,由于使用用于function (e)...

3

这是你定义的对象的方式,你可以访问它(称为对象字面)。例如,如果:

obj = { src: "Source" }; 

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

1

这是要传递给回调只是aditional的信息,在事件对象,并且可以使用访问:

// callback function 
function(e){ 
    alert(e.data.src); 
} 
相关问题