Jquery birdən çox maddə üçün eyni klik hadisəsi

Sayfada farklı öğeler üçün eyni kodu çalıştırmanın bir yolu var mı?

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

əvəzinə bir şey yapın:

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

Təşəkkür edirik

334
21 авг. Kelvin 21 avqust tərəfindən təyin . 2009-08-21 20:59 '09 at 20:59 'da 2009-08-21 20:59
@ 9 cavab
 $('.class1, .class2').on('click', some_function); 

Və ya:

 $('.class1').add('.class2').on('click', some_function); 
682
21 авг. Cavab Eevee 21 aug tərəfindən verilir . 2009-08-21 21:03 '09 at 21:03 'da 2009-08-21 21:03

Mən adətən click yerinə istifadə edirəm. Bu, müəyyən bir funksiyaya daha çox hadisə dinləyiciləri əlavə etməyə imkan verir.

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

Bu kömək edir!

74
11 июля '14 в 14:13 2014-07-11 14:13 cavab bzin 11 iyul '14 'də verilir 14:13 2014-07-11 14:13
 $('.class1, .class2').click(some_function); 

Bir boşluq qoyduğunuza əmin olun, məsələn $ ('Class1, space here.class2'), əks halda işləməyəcək

33
25 авг. Cavab coolguy 25 aug tərəfindən verilir . 2011-08-25 07:49 '11 at 7:49 2011-08-25 07:49

Çox seçicilər üçün yalnız $('.myclass1, .myclass2, .myclass3') istifadə edin. Bundan əlavə, mövcud funksiyanı bir klik hadisəsinə bağlamaq üçün lambda funksiyalarına ehtiyacınız yoxdur.

14
21 авг. Cavab verilir code_burgar 21 aug. 2009-08-21 21:04 '09 at 21:04 'da 2009-08-21 21:04

Başqa bir alternativ elementlər dəyişənlər kimi saxlanılır (funksiya orqanında bir neçə dəfə onlara daxil olduqda tez-tez yaxşı fikirdir).

 function disableMinHeight() { var $html = $("html"); var $body = $("body"); var $slideout = $("#slideout"); $html.add($body).add($slideout).css("min-height", 0); }; 

Bu, jQuery zəncirindən istifadə edir və əlaqələrdən istifadə etməyə imkan verir.

9
07 апр. cavab mathijspim verilir 07 Apr 2015-04-07 15:57 '15 at 15:57 2015-04-07 15:57

Virgülle ayrılmış siniflər siyahısını əlavə edin:

 jQuery(document).ready(function($) { $('.class, .id').click(function() { // Your code } }); 
1
26 сент. cavab verildi Dev 26 Sentyabr. 2017-09-26 09:20 '17 saat 09:20 ' də 2017-09-26 09:20' də

Bu kimi kodu da yaza bilərik: Mən buradayıq.

 $("#proprice, #proqty").blur(function(){ var price=$("#proprice").val(); var qty=$("#proqty").val(); if(price != '' || qty != '') { $("#totalprice").val(qty*price); } }); 
1
28 дек. Cavab Nitin Pawar tərəfindən verilir. 2016-12-28 09:43 '17 saat 09:43 'da 2016-12-28 09:43

Eyni hadisə ilə işləmə tələb edən bir çox giriş sahələri olan bir obyektə bir əlaqə var. Beləliklə, bir hadisə olması lazım olan bütün daxili obyektləri tapmaq üçün yalnız find () istifadə edin.

 var form = $('<form></form>'); // ... apending several input fields form.find('input').on('change', onInputChange); 

Nesneleriniz uşaqlar () bağlantısında eyni səviyyədədirsə, find () metodundan istifadə edə bilərsiniz.

0
01 дек. Cavab Andrii Bogachenko tərəfindən verilir 01 Dekabr. 2016-12-01 12:38 '16 'da saat 12:38' də 2016-12-01 12:38

Üstəlik əla nümunələr və cavablara əlavə olaraq, dərslərinizi istifadə edərək, iki fərqli ünsür üçün də "tapa bilərsiniz". Məsələn:

 <div class="parent"> <div class="child1">Hello</div> <div class="child2">World</div> </div> <script> var x = jQuery('.parent').find('.child1, .child2').text(); console.log(x); </script> 

Bu, "HelloWorld" a çıxmalıdır.

0
24 июля '17 в 8:10 2017-07-24 08:10 Cavab 24 iyul '17 'də saat 8:10' də Arkhaine tərəfindən verilir 2017-07-24 08:10

etiketləri ilə bağlı digər suallar və ya sual