jQuery - 函数参数

时间:2013-04-30 17:59:34

标签: jquery

我阅读了以下内容,但仍想讨论.... Meaning of evt = (evt) ? evt : window.event

// evt需要传递,因为它没有在函数中使用??? ---试着让我的思绪围绕着这个jQuery的东西。

A)

$('#' + _ids.btnPrintServiceCode).on('click', function (evt) {
        alert('Hello World')
    });

OR

B)

$('#' + _ids.btnPrintServiceCode).on('click', function () {
        alert('Hello World')
    });

2 个答案:

答案 0 :(得分:3)

如果没有使用evt,你就不需要传递它......它是可选的......但是它不会产生问题......

如果你需要听一下这个事件,你基本上会传递evt ...说你想要阻止一些元素的默认行为,所以你需要evt here

HTML

<a href="#"></a>

<强> jquery的

$('a').on('click', function (evt) {
    evt.preventDefault(); // this will prevent the deafult behaviour of that element
    alert('Hello World');
});

$('input').keyup(function(e){ //here we need to pass e as we are using e to get ther keyCode that was pressed
   if(e.keyCode == 8 )
   {
        alert('test');
    }
});

答案 1 :(得分:1)

这样想。让我们说我有这个功能:

function foo (bar) {
    alert("worky");
}
foo("foobar"); // worky

由于函数内部我从未实际使用bar,我可以通过从参数列表中删除bar来简化函数。

function foo () {
    alert("worky");
}
foo("foobar"); // worky

两者都会有相同的结果。您的事件绑定也是如此。由于你永远不会使用evt,所以没有理由将它传递给函数,但是如果你做的话,它不会有任何损害。

如果前一个开发人员总是将evt传递给事件处理程序回调,那么你应该继续这样做以保持代码的一致性,但这完全取决于你。