Вызов двух функций из одного и того же onclick [дубликат]


этот вопрос уже есть ответ здесь:

HTML & JS

Как вызвать 2 функции из одного события onclick? Вот мой код

 <input id ="btn" type="button" value="click" onclick="pay() cls()"/>

две функции-pay () и cls (). Спасибо!

9 84

9 ответов:

добавить точки с запятой ; до конца вызова функции, чтобы они оба работали.

 <input id="btn" type="button" value="click" onclick="pay(); cls();"/>

Я не верю, что последний требуются но эй, может также добавить его в хорошей мере.

вот хорошая ссылка из SitePoint http://reference.sitepoint.com/html/event-attributes/onclick

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

function myFunction(){
    pay();
    cls();
}

и затем, для кнопки:

<input id="btn" type="button" value="click" onclick="myFunction();"/>

вы можете вызывать функции внутри другой функции

<input id ="btn" type="button" value="click" onclick="todo()"/>

function todo(){
pay(); cls();
}

С помощью jQuery :

jQuery("#btn").on("click",function(event){
    event.preventDefault();
    pay();
    cls();
});

просто чтобы предложить некоторое разнообразие,оператор запятая можно использовать тоже, но некоторые могут сказать: "нет!", но это работает:

<input type="button" onclick="one(), two(), three(), four()"/>

http://jsbin.com/oqizir/1/edit

привязка событий из html не рекомендуется. Это рекомендуемый способ:

document.getElementById('btn').addEventListener('click', function(){
    pay();
    cls();
});
onclick="pay(); cls();"

однако, если вы используете оператор return в функции "pay", выполнение остановится, и" cls " не будет выполняться,

обходной путь для этого:

onclick="var temp = function1();function2(); return temp;"

поставьте точку с запятой между двумя функциями в качестве Терминатора оператора.

попробуй такое

<input id ="btn" type="button" value="click" onclick="pay();cls()"/>