2010-07-20 2 views
-2

Hallo все. У меня небольшая проблема.. Функция click в jquery всегда должна получить безымянную функцию?

У меня есть функция. Давайте назовем это:

function rowClick() 
{ 

} 

Во всяком случае, вопрос:

Как я могу связать эту функцию к событию щелчка без его называют?

То, что я имею в виду, если я это сделать:

$("#holder").click (function(){ rowClick(); }); 

функция rowClick вызывается во время его регистрации на событие щелчка.

В любом случае, я понимаю, почему это происходит. Я просто не понимаю, как я могу привязать функцию к событию так, чтобы он не вызывался.

Спасибо.

+1

он вызывается, потому что после него вы поместите '()', что означает «вызвать функцию слева». –

+1

Но это должно произойти только тогда, когда вызывается анонимное funtion, и это, в свою очередь, должно произойти только при срабатывании события click. Я подозреваю, что ОП дезактивировал код в своем посте, тем самым маскируя истинную проблему. – belugabob

+0

в коде, который вы отправили, rowClick не вызывается при регистрации события click - он вызывается только тогда, когда на самом деле происходит щелчок. Первоначально был задан этот вопрос: '$ (" # holder "). Click (rowClick());' ?? – Kip

ответ

3

Удалить функцию() и скобки из имени функции, например:

$("#holder").click(rowClick); 
+0

забыл упомянуть, что у меня есть параметры, которые мне нужно передать этой функции. как мне это сделать без родительских ? –

+0

Создайте вторую функцию без параметров, которая вызывает другую функцию с правильными параметрами. –

+0

Тогда вы должны вернуться к анонимной функции, которая должна работать. Можете ли вы опубликовать еще что-нибудь из окружающего кода? – belugabob

0

Как насчет ...

$("#holder").click (rowClick); 

... хотя анонимная функция не должна вызываться (и, следовательно, ни должны rowClick), пока не произойдет событие щелчка.

+0

lol thats, что я думал, но теперь, когда вы сказали, что я узнал, что у меня есть ошибка. Почему-то, когда я позже нажимаю на строку, ее запускают несколько раз не один раз ... –

0

Вы просто должны пройти функцию ссылки на в качестве параметра. Это необязательно означает anonymous function.

Вызов

$("#holder").click (rowClick); 

будет работать нормально. Не забудьте перепроектировать rowClick функцию с event parameter:

function rowClick (event) { 
    alert(event.target.id); 
} 

Этот параметр передается автоматически и могут быть доступны в вашей функции обратного вызова.

Смежные вопросы