这个jQuery指令的最佳缩写是什么?

CRI*_*ion 0 html javascript forms jquery

$( "input[role=submit_action], button[role=submit_action], div[role=submit_action], span[role=submit_action], a[role=submit_action]").live(  "click", function() {
});
Run Code Online (Sandbox Code Playgroud)

这也是:

$( "input[role=submit_action], input[role=submit_require]").live(  "click", function() {
    if ($(this).attr('role') == "submit_action") {
            // do this...
    }
    else {
            // do this...
    }
});
Run Code Online (Sandbox Code Playgroud)

例如,缩写可以是:

$("input[role=(submit_action|submit_require)]"
Run Code Online (Sandbox Code Playgroud)

Nic*_*ver 5

我在.delegate()这里使用效率(不遍历最初执行选择器的每个DOM元素),如下所示:

$(document.body).delegate("[role=submit_action]", "click", function() {
  //do stuff
});
Run Code Online (Sandbox Code Playgroud)

这里的不同之处在于.live(),它在启动时便宜得多,因为$("role=submit_action]") (甚至在.live()调用之前)必须遍历DOM检查role属性中的所有元素,您可以绕过这个开销.delegate().

由于性能是一个问题,不要相信我的话,在这里自己测试:http:
//jsperf.com/live-vs-delegate-test