Использование bind (type, [data], fn) и не встроенной функции - PullRequest
1 голос
/ 13 мая 2009
$("p").bind("click", function(event){
       // code goes here
});

Это вполне понятно. Но как использовать не встроенную функцию и передать событие в качестве аргумента? То есть:

$("p").bind("click", myFunction(event));

 function myFunction(event) {
       // code goes here
 }

Спасибо!

Ответы [ 3 ]

3 голосов
/ 13 мая 2009

Вот так:

$("p").bind("click", myFunction);

function myFunction(event) {
    // code goes here
}
2 голосов
/ 13 мая 2009

Ваша проблема в том, что вы даете ему аргумент, который вызывает выполнение функции, а возвращаемое значение подставляется в качестве аргумента для привязки. То, что вы хотите сделать, это просто предоставить ссылку на функцию в качестве аргумента для привязки. Сделайте это, убрав скобки (и аргумент). Аргументы, предоставляемые bind для обратного вызова, должны быть включены только в определение функции.

$("p").bind("click", myFunction);

function myFunction(event) {
    // code goes here
}
0 голосов
/ 28 мая 2010

Итак, когда вы делаете что-то вроде

$('p').bind('click', myFunction(event);

function myFunction(event){
//code
}

Это как если вы создаете свой собственный «объект события» вместо того, чтобы использовать объект, созданный jQuery, когда происходит действие пользователя?

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