【问题标题】:Declaratively setting jQuery.Data property for a HTML link以声明方式为 HTML 链接设置 jQuery.Data 属性
【发布时间】:2011-09-27 04:40:57
【问题描述】:

假设我在数据网格或中继器内的行中有一个 HTML 链接

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

现在还假设我已经在 jQuery 中处理了我的所有 DoSomething 的点击事件

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

将数据传递给依赖于点击链接的点击事件的正确技术是什么?

如果没有 jQuery,你通常会做这样的事情。

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

但这种技术显然不适用于 jQuery 案例。

基本上,我的理想解决方案会以某种方式为单击的链接的 jQuery.Data 属性添加值,但以声明方式这样做。

【问题讨论】:

    标签: javascript jquery asp.net repeater declarative


    【解决方案1】:

    使用 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】:

      您可以使用 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
      
      });
      

      【讨论】:

        【解决方案3】:

        您的问题我不清楚,但可能会有所帮助

        $(".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"
        });
        

        【讨论】:

          猜你喜欢
          • 2011-08-29
          • 1970-01-01
          • 2014-07-29
          • 1970-01-01
          • 2012-12-15
          • 2018-09-21
          • 2011-01-03
          • 1970-01-01
          相关资源
          最近更新 更多