2013-07-18 16 views
10

Mam 3 przyciski b1, b2, b3. Jak wiązać kliknięcie na 3 przyciski. Var b1 = $ ("# b1"); Var b2 = $ ("# b2");Zdarzenie kliknięcia wiązania jquery do wielu przycisków

$(b1,b2).bind("click", function(){}); 

jsfiddle.net/Xqpaq/

+0

Twój kod jest niepoprawny, nie można użyj selektora jQuery na wybranych przez jQuery przecinkach. Jeśli chcesz to zrobić, użyj notacji tablicowej jak: $ ([b1, b2]) – Kevin

+0

Chcę używać tylko obiektów var ... selektory mają być tylko typu var – user321963

+0

Można również po prostu podać: var b1 = "b1", b2 = "b2"; a następnie użyj $ (b1, b2) .bind() ... – Kevin

Odpowiedz

6

Nadanie jQuery tablicę będzie łączyć każdą pozycję do większego obiektu jQuery, co można powiązać wydarzenia w jednym ujęciu.

Załóż, że b1 i b2 to DOM, a nie obiekt jQuery.

$([b1, b2]).click(function (evt) { 
    // your code goes here 
}); 

JSFiddler na http://jsfiddle.net/XF3Vv/1/.

+0

Czy ktoś może wysłać do tego skrzypce? Nie mogę go uruchomić, ale wydaje się naprawdę fajny – user1234

+0

wydaje się nie działać http://jsfiddle.net/arunpjohny/ehgMa/3/ –

+1

Dodano skrzypce link – user321963

8

zawinąć je w div następnie kierować div dla wszystkich elementy przycisku.

<div id="button-nav"> 
    <button class="button" type="button">button 1</button> 
    <button class="button" type="button">button 2</button> 
    <button class="button" type="button">button 3</button> 
</div> 

js:

$('#button-nav').on('click','button', function (evt) { 
    //-- do stuff 
}); 

JS Fiddle of the above

10

Gorąco polecam dokonywania funkcję przycisku kliknij odrębną funkcję, a następnie powiązać każdy przycisk, aby go

http://jsfiddle.net/Xqpaq/1/

$(document).ready(function(){ 

    var b1 = $("#btn1"); 
    var b2 = $("#btn2"); 
    var b3 = $("#btn3"); 

    var btnClick = function(e){ 
     alert("Button: "+e.currentTarget.id); 
    } 

    b1.on('click', btnClick); 
    b2.on('click', btnClick); 
    b3.on('click', btnClick); 

}); 

Alternatywą jest użycie classes zamiast ids.Tak:

http://jsfiddle.net/Xqpaq/2/

<input type="button" id="btn1" class="btn-click-action" value="submit"/> 
<input type="button" id="btn2" class="btn-click-action" value="submit2"/> 
<input type="button" id="btn3" class="btn-click-action" value="submit3"/> 

Następnie JS:

var btnClassClick = function(e){ 
    alert("Button clicked from class: "+e.currentTarget.id); 
} 

$('.btn-click-action').on('click', btnClassClick); 
4

w Twoim przypadku:

po prostu zrobić jak ten poniżej:

cj('#b1, #b2').click(function(){ 

     alert('you clicked either button 1 or button 2'); 

}); 

typowy przykład: zrobić coś takiego dla różnych elementów, jeśli klikniesz na każdy z tych elementów to ten kliknąć zdarzenie zostanie wywołane

cj('#_qf_Contact_upload_view-top, #_qf_Contact_upload_new-top, ,#_qf_Contact_upload_view-bottom, #_qf_Contact_upload_new-bottom').click(function(){ 
    console.log(cj('#first_name').val()); 
    if(cj('#first_name').val() == '' || cj('#first_name').val().length == 0) 
    { 
     alert('First Name is a required field, cannot be empty'); 
     return false; 
    } 
}); 

nadzieję, że pomoże ktoś :)

Powiązane problemy