2009-08-21 6 views

cevap

661
$('.class1, .class2').on('click', some_function); 

Veya:

$('.class1').add('.class2').on('click', some_function); 
+5

geliştiricileri bu unutmamanız için daha psuedo sınıflarını kullanarak bile biraz daha genişletilmiş eğer stilleri –

+3

tanımlarken bir css seçici uygulamakla aynı biçimidir Eğer class2 bu var class2 = $ (". Class2") gibi önbelleğe alınmışsa ne olurdu? –

+9

@NeverBackDown '.add() 'jquery nesneleriyle çalışır – Eevee

14

Basitçe birden seçiciler için $('.myclass1, .myclass2, .myclass3') kullanmak yerine

$('.class1').click(function() { 
    some_function(); 
}); 

$('.class2').click(function() { 
    some_function(); 
}); 

böyle bir şey yapmak. Ayrıca, mevcut bir işlevi tıklama etkinliğine bağlamak için lambda işlevlerine ihtiyacınız yoktur.

+7

Eğer virgül –

30
$('.class1, .class2').click(some_function); 

('. Sınıfı1, uzay here.class2') başka alışkanlık

69

Normalde yerine click ait on kullanmak işe sen $ gibi bir boşluk koymak emin olun. Belirli bir işleve daha fazla olay dinleyici eklememi sağlıyor.

$(document).on("click touchend", ".class1, .class2, .class3", function() { 
    //do stuff 
}); 

Umut eder!

function disableMinHeight() { 
    var $html = $("html"); 
    var $body = $("body"); 
    var $slideout = $("#slideout"); 

    $html.add($body).add($slideout).css("min-height", 0); 
}; 

jQuery zincirleme yararlanır ve yapmanızı sağlar: senin elemanları varsayarak

+1

sonra bir boşluk gerekir Bu şekilde daha iyi. Fakat aynı beyanda bir öğeye sınıf ve bir tanesine göre kimlik verebilir misiniz? Örneğin $ (document) .on ("click touchend", ".class1, # id1, .class3", function() { // işlerini yapın }); Bir yıl sonra –

+3

: Evet, yapabilirsin! @GauravOjha –

+1

Bu teknik - doğrudan işleyiciden ziyade bir temsilci oluşturmak - işleyiciyi kaydettirdikten sonra * oluşturulan öğelerin eşleşmesiyle tetiklenen olayların ele alınmasının benzersiz avantajını sunar. Bakınız: http://api.jquery.com/on/ –

8

diğer alternatif, (bir işlev gövdesinde onlara birden çok kez erişiyorsanız iyi bir fikir çoğu zaman) değişkenler olarak depolanır referansları kullanmak.

0

Aynı olay tarafından ele alınması gereken çok sayıda giriş alanı içeren bir nesneye bağım var. Bu yüzden sadece nesneleri çocuk() yerinebir düzey bağlantısını aşağı

durumda
var form = $('<form></form>'); 
// ... apending several input fields 

form.find('input').on('change', onInputChange); 

olay olması, bu ihtiyacı find() tüm iç nesneleri almak için kullanabilirsiniz bulmak() yöntemi kullanılabilir.

1

Ayrıca aşağıdaki gibi kod yazabiliriz, burada bulanıklık olayını kullandım. Yukarıdaki mükemmel örnekler ve cevapları ek olarak

$("#proprice, #proqty").blur(function(){ 
     var price=$("#proprice").val(); 
     var qty=$("#proqty").val(); 
     if(price != '' || qty != '') 
     { 
      $("#totalprice").val(qty*price); 
     } 
    }); 
0

, ayrıca bir sınıflarını kullanarak iki farklı öğe için "Bul" yapabilirsiniz. Örneğin: "HelloWorld" çıktısı alınmalıdır.

1

böyle sınıflarının virgülle ayrılmış listesini ekleyin:

jQuery(document).ready(function($) { 

$('.class, .id').click(function() { 

// Your code 

    } 

});