使用jquery $ .data将对象绑定到对象

时间:2014-03-14 07:15:31

标签: javascript jquery

我想知道是否有办法使用jquery $ .data将button1元素绑定到button2,这样当我点击button2时 我可以访问button1对象并提取属性等。

我的绑定代码在以下函数中,通过单击button1调用此对象,并将此对象作为:

传入

button1的:

$(".acc-offer-clicked").click(function(e){
     e.preventDefault();
     getCourierList(this);
});

function getCourierList(obj) {

     //Bind the accept button to the choose-courier button
     $.data($("#choose_courier"), "accept", obj); 

}

稍后点击button1时,我希望将button2解压缩为

$("#choose_courier").click(function(e){
    e.preventDefault();
    var acceptbutton = $(this).data("accept");  
});

此时,接受按钮未定义。我以前能够绑定{}类型的对象,但我从未尝试使用实际元素。这甚至可能吗?

1 个答案:

答案 0 :(得分:1)

我认为问题在于

$.data($("#choose_courier"), "accept", obj); 

将数据绑定到新创建的jQuery对象 $("#choose_courier")。然后,当您尝试检索它时,您创建另一个对象,该对象没有任何data关联。

Documentation提供以下$.data签名:jQuery.data( element, key, value )。不是 jQuery对象,而是元素

要解决您的问题,您可以使用$(selector).data()

我在此示例Fiddle中包含了这两种变体,请查看。