2011-10-27 17 views
9

jak wykryć, który przycisk jest wciśnięty przy użyciu jQueryjak wykryć, który przycisk jest wciśnięty przy użyciu jQuery

<div id="dBlock"> 
<div id="dCalc"> 
    <input id="firstNumber" type="text" maxlength="3" /> 
    <input id="secondNumber" type="text" maxlength="3" /> 
    <input id="btn1" type="button" value="Add" /> 
    <input id="btn2" type="button" value="Subtract" /> 
    <input id="btn3" type="button" value="Multiply" /> 
    <input id="btn4" type="button" value="Divide" /> 
</div> 
</div> 

Uwaga: powyżej "dCalc" blok dodaje dynamicznie ...

Odpowiedz

31
$("input").click(function(e){ 
    var idClicked = e.target.id; 
}); 
5
$(function() { 
    $('input[type="button"]').click(function() { alert('You clicked button with ID:' + this.id); }); 
}); 
1

Ponieważ blok jest dodawany dynamicznie, możesz spróbować:

jQuery(document).delegate("#dCalc input[type='button']", "click", 
    function(e){ 
    var inputId = this.id; 
    console.log(inputId); 
    } 
); 

demo http://jsfiddle.net/yDNWc/

1

jQuery można przypiąć do pojedynczego wejścia/przycisku lub do wszystkich przycisków w formularzu. Po kliknięciu przycisku, zwróci on obiekt tego przycisku. Stamtąd możesz sprawdzić atrybuty, takie jak wartość ...

$('#dCalc input[type="button"]').click(function(e) { 
    // 'this' Returns the button clicked: 
    // <input id="btn1" type="button" value="Add"> 
    // You can bling this to get the jQuery object of the button clicked 
    // e.g.: $(this).attr('id'); to get the ID: #btn1 
    console.log(this); 

    // Returns the click event object of the button clicked. 
    console.log(e); 
}); 
+0

Technicznie "e" reprezentuje obiekt zdarzenia kliknięcia, a nie obiekt przycisku. – Blazemonger

+0

Masz rację, zaktualizowałeś odpowiedź. –

+0

@ mblase75, tak naprawdę obiekt zdarzenia kliknięcia to 'e.originalEvent',' e' to niestandardowy obiekt wygenerowany przez jQuery, który dla wygody ma właściwości "krzyżowe przeglądanie" i nie obejmuje niektórych rzeczy, które znajdują się w 'e.originalEvent' : P – Esailija

Powiązane problemy