Как привязать к атрибуту данных Elements - PullRequest
3 голосов
/ 17 ноября 2011

У меня есть атрибут данных как:

<a href="stuff" data-open-dialog="location-XXXX">click</a>

<a href="stuff" data-open-dialog="location-YYYY">click</a>

Как я могу привязаться к открытому диалоговому окну данных и получить значение XXXX или YYYY?

Я знаю, как привязать к определенному значению, например:

a[data-open-dialog="location-XXXX"]

но как я могу сделать значение динамическим, а затем получить его по щелчку?

спасибо

Ответы [ 3 ]

5 голосов
/ 17 ноября 2011

То, что вы делаете, на самом деле не является «связыванием». Вы просто хотите получить его значение, или я так думаю.

Попробуйте что-то вроде этого:

$('a[data-open-dialog]').click(function(e) {
    e.preventDefault();

    var location = $(this).data('open-dialog');

    ...
});

location будет содержать location-XXXX или location-YYYY . Для вас должно быть просто убрать часть "location-".

2 голосов
/ 17 ноября 2011

Я думаю, вы имеете в виду, что вы хотите выбрать любой элемент, который имеет атрибут, а затем получить значение этого атрибута в событии click. Если это так, используйте селектор атрибута has:

$('a[data-open-dialog]').click(function() {
    var location = $(this).data('open-dialog');
});

Если вам нужна только часть XXX, вы должны сделать .substr(9), чтобы удалить первые 9 символов строки.

См. Руководство по jQuery:

0 голосов
/ 17 ноября 2011
var data_contains = function(obj, val) {
    console.log(obj, val);
    if ($(obj).data('open-dialog') != undefined) {
        if ($(obj).data('open-dialog') == val) return true;
    }
    return false;
}

$('a').filter(function() {
    return data_contains(this, "location-XXXX");
}).click(function() {
    alert(this.innerHTML);
    return false;
});

Скрипка: http://jsfiddle.net/maniator/H75JD/3/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...