所以通常,我这样做是这样的:

$('#selectRoom a').click( function(e) {
e.preventDefault(); // To prevent the default behavior (following the link or adding # to URL)
// Do some function specific logic here
});


但是,我想这样做,以清理事物(并能够重用):

$('#selectRoom a').click( selectRoom );

function selectRoom () {
    e.preventDefault(); // To prevent the default behavior (following the link or adding # to URL)
    // Do some function specific logic here
}


问题是,我无法将“ e”事件处理程序传递给该函数,然后在加载时调用selectRoom()函数。即:

$('#selectRoom a').click( selectRoom(e) );


我可以解决这个问题吗?

最佳答案

像这样声明:

function selectRoom(e) {
  // now e will work
}


不要这样做:

$('#selectRoom a').click(selectRoom(e)); // WRONG DO NOT DO THIS


因为这意味着“调用函数selectRoom,然后将其返回值传递给jQuery中的“ click”函数。”您想将功能名称传递给jQuery,而不是执行函数的结果。从而:

$('#selectRoom a').click(selectRoom);

09-20 12:07