Декларативная установка свойства jQuery.Data для ссылки HTML - PullRequest
2 голосов
/ 27 сентября 2011

Предполагая, что у меня есть ссылка HTML в моих строках внутри сетки данных или повторителя как такового

<a href="javascript:void(0);" class="DoSomething">DoSomething</a>

Теперь также предполагается, что я обработал событие click для всех моих DoSomethings в jQuery как таковом

$(".DoSomething").click(function (e) {
    //Make my DoSomethings do something
});

Как правильно передать данные событию click, которое зависит от нажатой ссылки?

Без jQuery вы обычно делаете что-то подобное.

<a href="javascript:void(0);" class="DoSomething" onclick="DoSomething('<%# Eval("SomeValue") %>');">DoSomething</a>

но этот метод, очевидно, не работает в случае jQuery.

По сути, мое идеальное решение было бы как-то добавить значения для свойства jQuery.Data для ссылки, по которой щелкали, но делало это декларативно.

Ответы [ 3 ]

4 голосов
/ 27 сентября 2011

Использовать атрибуты данных HTML5.Поддержка jQuery встроена для 1.4.3 +

http://api.jquery.com/data/#data2

 <a href="#" class="product-link" data-productid="77">click here</a>

 $('.product-link').click(function (e) {
     alert($(this).data('productid'));
 });
2 голосов
/ 27 сентября 2011

Ваш вопрос мне не ясен, но может быть, это поможет

$(".DoSomething").click(function (e) {
    //Make my DoSomethings do something
    $(this).data("key","value");
    //later the value can be retrieved like
    var value=$(this).data("key");
    console.log(value);// gives you "value"
});
2 голосов
/ 27 сентября 2011

Вы можете использовать функцию attr ().

http://api.jquery.com/attr/

$("#Something").attr("your-value", "Hello World");

$("#Something").click(function (e) {
    //Make my DoSomethings do something
   var value = $(this).attr("your-value");
   alert(value); // Alerts Hello World

});
...