Ответ 1
Чтобы использовать методы jQuery, вы должны обернуть этот вызовом jQuery.
$('.newItem').click(function () {
alert($(this).attr('setid'));
});
Я использую jQuery, чтобы щелкнуть элемент 'a'. У меня есть список тех ссылок, в которых у каждого из них есть класс, который он меня захватывает.
Я хотел бы узнать, какая из ссылок была нажата (у меня есть атрибут "setid" для каждой ссылки), а также получить точку, в которую была нажата мышь.
Как это можно сделать?
пример кода:
<a href="#" class="newItem" setid="28">click me</a>
$('.newItem').click(function (e) {
alert(e.attr('setid'));
});
EDIT: ОК, поэтому, чтобы получить позицию, я бы использовал e.pageX
Чтобы использовать методы jQuery, вы должны обернуть этот вызовом jQuery.
$('.newItem').click(function () {
alert($(this).attr('setid'));
});
Как сказал 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/
обратитесь к приведенному ниже коду:
document.getElementById("element_id").addEventListener("click",function(e)
{
console.log(e.srcElement.getAttribute("data-name"));
},false);
Вы на правильном пути.
$(function(){
$('.newItem').click(function () {
alert( $(this).attr('setid') );
})
});
Ваш код почти прав, чтобы получить атрибут. Единственное, чего не хватает, это обернуть this
(элемент DOM) в оболочку jQuery, чтобы вы могли использовать функции jQuery. $(this).attr('setid')
должен работать.
Чтобы получить координаты страницы, используйте свойства pageX
и pageY
объекта события. Итак:
$('.newItem').click(function (e) { // e is the event object
alert($(this).attr('setid'));
alert(e.pageX);
alert(e.pageY);
});
См. документацию по Объекту события.