/ / Bypass onclick zdarzenie i po wykluczeniu niektórych CV wznowić onclick - javascript, jquery

Pomiń zdarzenie onclick i po wykluczeniu niektórych CV wznowić onclick - javascript, jquery

Mam poniżej przycisk html, który ma zdarzenie onclick

<button onclick="alert("button");" type="button">Button</button>

i następujące js:

$("button").on("click", function(){
alert("jquery");
});

Po wykonaniu jakiegoś kodu js przez jQuery / Javascript, chcę kontynuować z przyciskiem onclick handler np. Jquery alert first, a nie button alert.

Próbowałem tak wielu rzeczy jak "usuń attr i dołącz go po wykonaniu mojego kodu i wywołaj kliknięcie (utknął w pętli, wiemy dlaczego :))" i "wyłącz" kliknij. ale bez powodzenia.

czy to możliwe za pośrednictwem jQuery / javascript?

każda sugestia bardzo ceniona

Dzięki

Odpowiedzi:

0 dla odpowiedzi № 1

Trochę podchwytliwe. http://jsfiddle.net/tarabyte/t4eAL/

$(function() {
var button = $("#button"),
onclick = button.attr("onclick"); //get onclick value;

onclick = new Function(onclick); //manually convert it to a function (unsafe)

button.attr("onclick", null); //clear onclick
button.click(function() { //bind your own handler
alert("jquery");
onclick.call(this); //call original function
})
});

Chociaż istnieje lepszy sposób na przekazywanie params. Możesz użyć atrybutów danych.

<button data-param="<%= paramValue %>"...


0 dla odpowiedzi nr 2

Możesz to zrobić w ten sposób:

http://jsfiddle.net/8a2FE/

<button type="button" data-jspval="anything">Button</button>

$("button").on("click", function () {

var $this = $(this),                //store this so we only need to get it once
dataVal = $this.data("jspval"); //get the value from the data attribute

//this bit will fire from the second click and each additional click
if ($this.hasClass("fired")) {

alert("jquery"+ dataVal);
}
//this will fire on the first click only
else {

alert("button");

$this.addClass("fired"); //this is what will add the class to stop this bit running again
}

});

0 dla odpowiedzi № 3

Utwórz oddzielną funkcję javascript, która zawiera to, co chcesz zrobić po kliknięciu przycisku (tj. Usunięcie atrybutu onclick i dodanie kodu zamiennego w jego własnej funkcji).

Następnie wywołaj tę funkcję na końcu

$("button").on("click", function(){
alert("jquery");
});

Zostanie ci coś takiego

function buttonFunction()
{
//Do stuff here
}

$("button").on("click", function()
{
alert("jquery");
buttonFunction();
});

<button type="button">Button</button>