jquery使用数据属性更多点击功能

I have to link multiple contents (result of a db query). I tried using more than one click function, but site was really slow, so I tried doing this.

The HTML element written by PHP:

<img id="click" src="images/like.png" alt="" width="80%" data-event="'.$rows[$i][id].'"/>

The jQuery Code:

<script>

    $(document).ready(function()

    {

        $('#click').click(function()
        {

            var id = $(this).data('event');
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari

                xmlhttp=new XMLHttpRequest();                   
                xmlhttp.open("GET","likes.php?eid="+id+"&ip=IPADDRESS",true);
                xmlhttp.send();

            }
            document.location = "index.php";

        });

    });
</script>

But it only works on the first element...

$("#click") 

Will return only the first element. As IDs need to be unique.

Instead change it to class and it will work

$(".click") 

this will return you list of all images

But still you can do with the above HTML unmodified also, but i won't recommend it

$("img[id^=click]") // don't use this ever , just to know even this will work

Сan be a reason to use ID instead of class Try change #click .click

Change your code by :

<img class="like" src="images/like.png" alt="" width="80%" data-event="'.$rows[$i][id].'"/>

And your jQuery code

<script>

    $(document).ready(function()

    {

        $('.like').click(function()
        {

            var id = $(this).data('event');
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari

                xmlhttp=new XMLHttpRequest();                   
                xmlhttp.open("GET","likes.php?eid="+id+"&ip=IPADDRESS",true);
                xmlhttp.send();

            }
            document.location = "index.php";

        });

    });
</script>