Compare 'e.target' to a jQuery object

后端 未结 4 1415
情书的邮戳
情书的邮戳 2021-02-06 22:00

What I want to do:

( clickedObject === someDiv ) //returns true or false

What I tried

( $(e.target) === $(\'.selector\') ); //r         


        
相关标签:
4条回答
  • 2021-02-06 22:42

    You're close. Use .is() instead:

    if($(e.target).is('.selector')) {
        // Your code
    }
    

    The trick here is that you wrap e.target in a jQuery object to allow it access to all the useful jQuery methods.

    If you're just seeing whether e.target has a certain class, try using .hasClass() in place of .is():

    if($(e.target).hasClass('selector')) {
        // Your code
    }
    

    Either method works, although .hasClass() is a little clearer as to what the code does, and is faster than using .is()

    0 讨论(0)
  • 2021-02-06 22:43

    To check if e.target has this class you can use the hasClass function.

    if ($(e.target).hasClass("selector"))
    

    Or, if you really want to compare objects, note that jQuery selectors return a collection of items, so I think you'll want

    if (e.target === $('.selector')[0])
    
    0 讨论(0)
  • 2021-02-06 22:51

    Obviously using .is() function is the best solution here.

    If you find yourself doing such comparison, try to check if it is possible to use embedded jQuery mechanisms like this:

    $(element).on("click", ".selector", function() {
        alert("clicked");
    });
    

    Second argument in the .on() method is a target selector. When using this construction (read more: http://api.jquery.com/on/#direct-and-delegated-events) there will be no need to make any additional comparisons.

    https://jsfiddle.net/m5zysufy/

    0 讨论(0)
  • 2021-02-06 22:52

    If you want to match the element that the event is attached to you can use $(this), or if you want to find which element triggered the event use $(event.target).

    Below is an example of both of these.

    http://jsfiddle.net/Phunky/TbJef/

    Unless you're using event delegation these will be the same though and if there the same element.

    0 讨论(0)
提交回复
热议问题