Функция jQuery в .click () и т. д. - PullRequest
1 голос
/ 07 апреля 2010

Так обычно я делаю это так:

$('#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) );

Можно как-нибудь это исправить?

Ответы [ 3 ]

6 голосов
/ 07 апреля 2010

selectRoom () получит событие:

function selectRoom(e)

Это должно сработать.

2 голосов
/ 07 апреля 2010

Объявите это следующим образом:

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

Выполните , а не сделайте это:

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

, поскольку это означает: «Вызвать функцию selectRoom и затем передать еевернуть значение функции "click" в jQuery. "Вы хотите передать jQuery имя функции, а не результат выполнения функции.Таким образом:

$('#selectRoom a').click(selectRoom);
0 голосов
/ 07 апреля 2010

Вы также можете вернуть false из функции, чтобы предотвратить продолжение события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...