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