如何将“事件”传递给对象文字,jquery?

时间:2015-01-15 20:33:55

标签: jquery

我有一个像这样的jquery脚本:

$(document).on('click', '.someClass', function(e){
    e.preventDefault();
    // Some code...
});

我想把它重写为:

blah = {
    init: function() {
        e.preventDefault();
        // Some code...
    }
}

$(document).on('click', '.someClass', blah.init);

但是如何将e变量传递给对象?

3 个答案:

答案 0 :(得分:2)

您需要将init作为函数:

blah = {
    init: function(e) {
        e.preventDefault();
        // Some code...
    }     
}

答案 1 :(得分:1)

试试:

blah = {
    init: function(e) {
        e.preventDefault();
        // Some code...
    }
}

答案 2 :(得分:1)

要使用对象文字的函数作为事件处理程序的回调,您必须将文字函数的参数设置为等于事件回调所需的参数,如果您希望访问它们。

像这样:

var blah = {
  init: function(e) { // we want to access the event object, so we set it as a function param
    console.log(e);
    alert('bye');
  }
}

$(document).on('click', blah.init);