2012-05-02 3 views
-2

У меня есть код ниже:объединить функции Javascript

onClick="apply(this.checked, 'textBox3')" onChange="apply(this.checked, 'textBox4')" 

Могу ли я комбинировать эту функцию в 1 функции?

спасибо.

+4

Что вы подразумеваете под _ "в 1 функцию" _? У вас уже есть 1 функция для 2 обработчиков событий. –

+0

... и вы используете разные аргументы для каждого. – Quentin

+0

@ Александр Павлов: Ну, под обложками у него три (две сгенерированные функции для обработчиков событий и одна функция «apply»). –

ответ

0

Как вы передаете 'textBox3' в один призыв к apply (тот с onClick) и 'textBox4' в другой вызов (тот с onChange), нет, вы не можете совместить это дальше. Если вы проходили те же аргументы, вы могли бы сделать что-то, хотя это было бы не так много.

0

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

Но в случае, что это то, что вы хотите:

* отредактированный код *

<script> 
    function newApply(checked, elems) { 
    for(var i=0; i<elems.length; i++) { 
     apply(checked, elems[i]); 
    } 
    } 
</script> 

<input id="yourElement" onClick="newApply(this.checked, [ 'textBox3', 'textBox4' ]);" /> 
+0

Извините, сэр, у меня есть код: onClick = "apply (this.checked, 'textBox3', 'textBox4')". Когда я пытаюсь запустить это, но ничего не изменится, это просто изменит textBox3. Я имею в виду, могу ли я объединить это? –

+0

@DavidAlwis Я отредактировал код в соответствии с вашим желаемым поведением. В следующий раз попытайтесь более точно описать свои потребности, -). – Sirko

-1

Использование JQuery вы можете.

$('input').bind('click change', function() { 
    /* ... */ 
}); 
+2

Не с разными аргументами он не может. –

+0

О, извините, я не заметил другого аргумента, я рекомендую решение Sirko. – HMansour

+0

@ user: вы можете (и должны) удалить неверные ответы (я думаю, именно поэтому кто-то отказался от этого). Просто используйте ссылку «удалить» в ответ. –