开发者

why event.target selects next element

开发者 https://www.devze.com 2023-02-20 11:57 出处:网络
I am having the following code. Here When i click one the a tag i just like to get this element id .bute.target select next element can some one explain

I am having the following code. Here When i click one the a tag i just like to get this element id .but e.target select next element can some one explain

 $(document).ready(function(){
    function doaction(e) {

       var eve, id;

        eve = $(e.target);
        id = eve.attr('id');
        alert(id);

    }

    $(".delete").click(function(e) {
        doaction(e);
    });


    });



<div class="delete" id="del/one"><a href="javascript:void(0);" id="delete/1" >one</a></div>

<div class="delete" id="del/two"><a href="javascript:void(0);" id="delete/2">two</a></div>

<div class="delete" id="del/three"><a href="javascript:void(0);" id="delete/3" >three</a></div>

for demo

http://jsf开发者_运维问答iddle.net/gchoken/SGvUd/4/


Your jsFiddle link works fine. Just to explain, the click event is on the div, not on the a. So, if you click on the a, you'll get that ID, but if you click inside the div, but not on the a, you'll get the div ID, not the a ID. Since the a is inside the div, clicking on that will trigger the event.


e.target gives you the actual element that was clicked.

To get the element that you registered the handler for, use this.


when you do this: $(".delete").click(function(e) {

you're getting the click event of the DIV with a class nammed "delete"

if you whant to get the click of A tag you must put the class "delete" on tha a tag and make the following code Example:

$("a.delete").click(function(){ //Code here })


It works ok for me. However, if you're having some problems, you may want to fix ID's in your code. The ID attribute's value must begin with a letter in the range A-Z or a-z and may be followed by letters (A-Za-z), digits (0-9), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").


try this one...

$(document).ready(function(){
function doaction(e) {

   var eve, id;

    eve = $(e.target.parentNode);
    id = eve.attr('id');
    alert(id );

}

$(".delete").click(function(e) {
    doaction(e);
});


});

e.target gives you actual element which is being clicked, and div is parent of that element so..use e.target.parentNode to get div id..

hope this helps..

Working Demo

0

精彩评论

暂无评论...
验证码 换一张
取 消