以下JavaScript的等效jQuery代码是什么,可以节省onclick事件?

时间:2010-05-04 18:18:15

标签: javascript jquery

所以在JavaScript中,我可以执行以下操作:

var someObj = document.getElementById("foo");
var fooClick = foo.onclick;

var someOtherObj = document.getElementById("bar");
someOtherObj.onclick = fooClick;

我想知道,jQuery等同于上面的代码是什么?

谢谢!

3 个答案:

答案 0 :(得分:6)

是否真的需要从另一个对象获取事件处理程序?这对我来说似乎不是一个好主意。更好的方法是定义处理程序,并将其分配给两个对象。

var clickHandler = function(e) { alert('click!'); };
$('#foo,#bar').click(clickHandler);

答案 1 :(得分:5)

var someObj = $("#foo").get(0);
var fooClick = someObj.onclick;

$("#bar").click(fooClick);

或者如果你想要一行:

$("#bar").click($("#foo").get(0).onclick);

答案 2 :(得分:3)

只需添加Daniel Schaffer的答案(+ 1),您还可以内联点击'处理程序'定义,例如:

$("#foo, #bar").click( function() {
    alert( this.id + ' was clicked.' );
} );

行为应该是相同的,但根据你的编码风格品味,你可能更喜欢这个(我愿意)。