Sayfadaki farklı öğeler için aynı kodu yürütmenin herhangi bir yolu var mı?jQuery birden çok öğe için aynı tıklama olayı
$('.class1').$('.class2').click(function() {
some_function();
});
teşekkür
Sayfadaki farklı öğeler için aynı kodu yürütmenin herhangi bir yolu var mı?jQuery birden çok öğe için aynı tıklama olayı
$('.class1').$('.class2').click(function() {
some_function();
});
teşekkür
$('.class1, .class2').on('click', some_function);
Veya:
$('.class1').add('.class2').on('click', some_function);
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.
Eğer virgül –
$('.class1, .class2').click(some_function);
('. Sınıfı1, uzay here.class2') başka alışkanlık
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
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 –
: Evet, yapabilirsin! @GauravOjha –
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/ –
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.
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ğı
durumdavar 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.
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);
}
});
, ayrıca bir sınıflarını kullanarak iki farklı öğe için "Bul" yapabilirsiniz. Örneğin: "HelloWorld" çıktısı alınmalıdır.
böyle sınıflarının virgülle ayrılmış listesini ekleyin:
jQuery(document).ready(function($) {
$('.class, .id').click(function() {
// Your code
}
});
geliştiricileri bu unutmamanız için daha psuedo sınıflarını kullanarak bile biraz daha genişletilmiş eğer stilleri –
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? –
@NeverBackDown '.add() 'jquery nesneleriyle çalışır – Eevee