代码之家  ›  专栏  ›  技术社区  ›  DigitalZebra

以下保存onclick事件的javascript的等效jquery代码是什么?

  •  2
  • DigitalZebra  · 技术社区  · 16 年前

    因此,在javascript中,我可以执行以下操作:

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

    我想知道,jquery与上面的代码等价吗?

    谢谢!

    3 回复  |  直到 16 年前
        1
  •  5
  •   David    16 年前
    var someObj = $("#foo").get(0);
    var fooClick = someObj.onclick;
    
    $("#bar").click(fooClick);
    

    或者,如果您想在一行中显示:

    $("#bar").click($("#foo").get(0).onclick);
    
        2
  •  6
  •   Daniel Schaffer    16 年前

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

    var clickHandler = function(e) { alert('click!'); };
    $('#foo,#bar').click(clickHandler);
    
        3
  •  3
  •   dannywartnaby    16 年前

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

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

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