applying the same .click event to two different divs

前端 未结 6 1380
孤独总比滥情好
孤独总比滥情好 2021-02-09 07:19

i have two different divs (code was simplified, this is not the actual code.)

相关标签:
6条回答
  • 2021-02-09 07:51

    This should work

    ($('#test','#funt')).click(function(){alert('yes')});
    

    http://api.jquery.com/multiple-selector/

    0 讨论(0)
  • 2021-02-09 07:55

    Simply:

    $("#test, #funt").click(DoWork);
    

    See Multiple Selector.

    0 讨论(0)
  • 2021-02-09 07:59

    Assign a class to your div's, and then assign the click event using the class like this:

    <div class="clickable" id="test"></div>
    <div class="clickable" id="funt"></div>
    

    Then

    $('.clickable').click(function()
    {
        DoWork();
    });
    

    You could also list the id's like this:

    $("#test, #funt").click(DoWork);
    

    I usually try to use classes because it's cleaner when you're dealing with multiple divs - you don't have to list the ID of each.

    0 讨论(0)
  • 2021-02-09 08:01

    You can try this syntax to do so,

    When working with Classes

    $(".className1, .className2, .classNameN").on('click', function(){
        Do_Some_Work();
    });
    

    When working with Id's

    $("#ID1, #ID2, #IDN").on('click', function(){
        Do_Some_Work();
    });
    

    When working with Combination of ID and Class

    <div id="z">z
        <div class="w">w</div>
        <div class="x">x</div>
       <div class="y">y</div>
    </div>
    
    $('#z.w , #z.y').on('click', function(){
        Do_Some_Work();
        //Pointer come here only when it click on `W` and `Y`
    });
    
    0 讨论(0)
  • 2021-02-09 08:04

    You were actually pretty close:

     $('#test, #funt').click(function() {
          });
    
    0 讨论(0)
  • 2021-02-09 08:09

    You have two options, either you could give both of those divs a class and then just run the code:

    $(".myclass").click(function() {
        DoWork();
    });
    

    Or you could define a function like:

    function hookClick(arr, handler)  {
        foreach (var i in arr) {
            $(i).click(handler);
        }
    }
    

    then run it using

    hookClick(["#div1", "#div2"], function() { /*do sth cool })
    
    0 讨论(0)
提交回复
热议问题