jQuery选择器问题

时间:2010-01-08 15:02:40

标签: jquery jquery-selectors

我遇到过利用jQuery的代码,类似于以下内容。

NAMESPACE = {
    propertyA : $("#selector-a"),
    propertyB : $("#selector-b")
}

$(NAMESPACE.propertyA).click(function(){
    // ...
});

这似乎有效,即使附加点击处理程序的语法应该是。

NAMESPACE.propertyA.click(function(){
    // ...
});

尽管语法不正确,jQuery是否具有解析以下内容的内置功能?

$($("#my-selector")).click ... etc.

2 个答案:

答案 0 :(得分:3)

是。 jQuery允许作为$的参数:

  • CSS选择器
  • DOM元素
  • DOM元素数组
  • jQuery对象
  • 一个函数(将作为$.ready()
  • 的一部分调用)

就jQuery而言,所有这些都是有效的语法,但在某些情况下性能可能会受到影响。

由于您的NAMESPACE.properties是jQuery元素,因此可以使用。

答案 1 :(得分:1)

是的,它会在必要时处理。如果它在你的控制范围内,你真的不应该使用这种语法。我对以下内容进行了测试,并得到了相同的结果:

$($("li")).click(function(e){
  alert(e.target);
});

//--

$("li").click(function(e){
  alert(e.target);
});