Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在jquery中的委托函数中添加多个选择器?_Jquery_Delegates - Fatal编程技术网

是否可以在jquery中的委托函数中添加多个选择器?

是否可以在jquery中的委托函数中添加多个选择器?,jquery,delegates,Jquery,Delegates,类似于为我的脚本创建名称空间/子模块(与我的应用程序中的模块有关)?比如说,我只想将某些任务委托给特定div中的元素,比如说#submodule1 我可以这样做吗: $("#submodule1") .delegate(".selector1", "click", function() {} ) .delegate(".selector2", "click", function() {} ) 如果可能的话,它是否与: $("#submodule1").delegate(".

类似于为我的脚本创建名称空间/子模块(与我的应用程序中的模块有关)?比如说,我只想将某些任务委托给特定div中的元素,比如说#submodule1

我可以这样做吗:

 $("#submodule1")
    .delegate(".selector1", "click", function() {} )
    .delegate(".selector2", "click", function() {} )
如果可能的话,它是否与:

 $("#submodule1").delegate(".selector1", "click", function() {} )
 $("#submodule1").delegate(".selector2", "click", function() {} )
编辑

根据T.J.Crowder的回答,我应该能够做到:

$("#soap-test-test-cases")
  .delegate(".soap-test-case", "click", function(){
      testfunction();
  });
  .delegate("legend", "click", function() {
    alert("this is a test!");
  });
但是我得到一个语法错误

编辑

您的编辑更改了问题,现在出现语法错误:

$("#soap-test-test-cases")
   .delegate(".soap-test-case", "click", function(){
       testfunction();
   });
// v--- here
   .delegate("legend", "click", function() {
     alert("this is a test!");
   });
如果删除它前面的分号,则可以:

$("#soap-test-test-cases")
   .delegate(".soap-test-case", "click", function(){
       testfunction();
   })  // <== No semi here, we're not done with the statement yet
   .delegate("legend", "click", function() {
     alert("this is a test!");
   }); // <== Now we're done with the statement

…或者(当然)对两个单独的
委托调用使用同一个命名函数。

wow所以有一个$(“#submodule1”),$(“#submodule2”)的页面,并且其中有很多委托是“公认的”更好的做法?嗯,我尝试了第一个,但对我来说不起作用。换行符不会破坏代码吗?将编辑问题以显示code@corroded:我没说这是最佳实践,我说你可以做到。:-)但是,如果您有一个页面,其中有一个定义的区域,您想在其中处理对任何元素的单击,这正是
委托
的作用。@腐蚀:您显示的换行符可以--,但肯定要在语句末尾加上分号。永远不要依赖自动分号插入。@腐蚀:您的编辑更改了问题,但您不知道这一点。:-)我已更新以回答更新。语法错误:删除第一个
}结尾处的分号
$("#submodule1").delegate(".selector1, .selector2", "click", function() { });