jQuery-如何在使用'单击'事件

jQuery - How to get attribute of an element when using the 'click' event

本文关键字:单击 事件 jQuery-      更新时间:2023-09-26

我正在使用jQuery来点击"a"元素。我有一个链接列表,每个链接都有一个类,我通过他来捕捉点击。

我想知道哪些链接被点击了(我为每个链接都有一个属性"setid"(,还想知道鼠标被点击的位置。

如何才能做到这一点?

代码示例:

<a href="#" class="newItem" setid="28">click me</a>
$('.newItem').click(function (e) {
    alert(e.attr('setid'));
});

编辑:好的,所以为了得到位置,我会使用e.pageX

要使用jQuery方法,必须用对jQuery的调用包装this

$('.newItem').click(function () {
    alert($(this).attr('setid'));
});

参考下面给出的代码:

document.getElementById("element_id").addEventListener("click",function(e)
{
 console.log(e.srcElement.getAttribute("data-name"));
},false);

就像Skylar在对你的问题的评论中所说的那样,你可以在你的新属性前面使用"data-"(这是HTML5有效的(。

<a href="#" class="newItem" data-setid="28">click me</a>

然后在jQuery(v1.4.3+(中,您可以获得以下内容:

var setid = $(this).data("foo");

它甚至比其他人提到的attr((要好一点。有关更多示例,请参见此-http://www.broken-links.com/2010/11/18/data-attributes-in-html-and-jquery/

您的路径是正确的。

$(function(){
    $('.newItem').click(function () {
        alert( $(this).attr('setid') );
    })
}); 

您的代码几乎可以获得属性。唯一缺少的是在jQuery包装器中包装this(DOM元素(,以便使用jQuery函数。$(this).attr('setid')应该起作用。

要获取页面坐标,请使用事件对象的pageXpageY属性。因此:

$('.newItem').click(function (e) { // e is the event object
    alert($(this).attr('setid'));
    alert(e.pageX);
    alert(e.pageY);
});

请参阅有关Event对象的文档。