对于多个请求,jQuery数据属性的返回方式不同

jQuery data attribute is being returned differently for multiple requests

本文关键字:返回 方式不 数据属性 jQuery 于多个 请求      更新时间:2023-09-26

我有一个元素:

  <a id="contactUsLink" class="modalButton homepageButton modalOpenButton" href="#" data-modal='{ldelim} "target" : "#contactDialogue", "action" : "open" {rdelim}'>Contact Us</a>

我给jQuery的click事件分配了一个闭包

$('#contactUsLink').click(function(e) {
    e.preventDefault();
    var data = $(this).data('modal');
    modeless.modal(this);
});

我在我的命名空间javascript函数nameless.modal()中处理数据属性,我用DOM做各种事情,包括动画各种div等。

当我再次点击链接时,变量data将返回另一个元素的data属性。

我很困惑。显然,我的其他代码是干扰与jQuery不知何故,但我所有的变量和函数名都在我自己的名称空间....怎么?

还错过了什么吗?

似乎jQuery缓存了数据属性。

第3614行- https://code.jquery.com/jquery-2.1.4.js

不知道为什么它是返回缓存的数据为另一个对象,但我怀疑我发现了一个错误在实现如何缓存检索数据。

jQuery.removeData()将清除缓存

jQuery不动态更新其内部的data。当使用data-attributes时,我以属性为目标。

查看这个演示:

// jQuery data - does not update dynamically
$(this).data('test');
// element attribute - does update dynamcially
$(this).attr('data-test')