所以通常,我这样做是这样的:
$('#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);