Jquery Bind Event - PullRequest
       11

Jquery Bind Event

0 голосов
/ 01 декабря 2009

У меня есть следующий код:

$('#form_field, #button').bind('change click', function() {
// take action
});

Работает нормально. Однако я хочу запустить то же действие, когда «change» используется для «#form_field» и «click» для «#button» (а не «click» для «#form_field»).

Я знаю, что это можно сделать с помощью следующего кода:

$('#form_field').bind('change', function() {
// take action
});

$('#button').bind('click', function() {
// take action
});

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

Есть идеи?

Заранее спасибо

Ответы [ 3 ]

12 голосов
/ 01 декабря 2009

Как насчет:

var myCoolFunction = function() {
  // take action
};
$('#form_field').bind('change', myCoolFunction);
$('#button').bind('click', myCoolFunction);

??

3 голосов
/ 01 декабря 2009

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

$('#form_field').bind('change', takeAction);

$('#button').bind('click', takeAction);

function takeAction () {
    //take action
};
0 голосов
/ 01 декабря 2009

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

...