Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery .live()和.data()_Jquery_Live - Fatal编程技术网

Jquery .live()和.data()

Jquery .live()和.data(),jquery,live,Jquery,Live,我正在尝试制作一段JavaScript,它允许我在某个类中添加一个,它将自动向其中添加类似占位符的行为。问题是,我通过AJAX加载了一些输入。我使用.live()方法来解决这个问题,但是.data()不想玩 下面是一个例子: jQuery HTML 问题在于的原始值没有存储在.data()的任何位置,即使是在.post()调用中。页面上可以有多个.placeHolder 我是否错误地使用了.data()?如果没有,还有什么问题吗?@JAAulde有一个观点 $(".placeHolder")

我正在尝试制作一段JavaScript,它允许我在某个类中添加一个
,它将自动向其中添加类似占位符的行为。问题是,我通过AJAX加载了一些输入。我使用
.live()
方法来解决这个问题,但是
.data()
不想玩

下面是一个例子:

jQuery HTML

问题在于
的原始值没有存储在
.data()
的任何位置,即使是在
.post()
调用中。页面上可以有多个
.placeHolder


我是否错误地使用了
.data()
?如果没有,还有什么问题吗?

@JAAulde有一个观点

$(".placeHolder").data("originalValue", $(this).val());
也许是这样吧

$(".placeHolder").each(function(){
  $(this).data("originalValue", $(this).val());
});

@JAAulde说的有道理

$(".placeHolder").data("originalValue", $(this).val());
也许是这样吧

$(".placeHolder").each(function(){
  $(this).data("originalValue", $(this).val());
});
.live()
将事件处理程序放置在
文档
元素上,该元素使用事件冒泡来捕获事件,并检查事件是否来自适当的源
.data()
将数据附加到现有元素。您使用的是
live()
,因为您是通过AJAX加载数据的,无论
元素何时出现,它都会工作。但是
data()

如果您使用的是最新版本的jQuery,则可以使用HTML5
data-
属性,并使用
data()
处理程序访问它们。

.live()
将事件处理程序放置在
文档
元素上,该元素使用事件冒泡来捕获事件,并检查它们是否来自适当的来源
.data()
将数据附加到现有元素。您使用的是
live()
,因为您是通过AJAX加载数据的,无论
元素何时出现,它都会工作。但是
data()



如果您使用的是最新版本的jQuery,您可能可以使用HTML5
data-
属性,并使用
data()
处理程序访问它们。

我假设
选择器
只是psudo代码?@Joseph:当然。我只是把它作为一个示例选择器,你需要在上下文中给我们代码。如图所示,第一行会导致您的问题,因为
引用
窗口
。我假设
选择器
只是psudo代码?@Joseph:当然。我只是把它作为一个示例选择器,你需要在上下文中给我们代码。如图所示,第一行将导致您的问题,因为
引用了
窗口
。非常感谢约瑟夫!顺便提一下,有没有一种方法可以在文档的开头这样做一次,而不是每次我调用AJAX或修改DOM时都这样做?+1哈,哇,我还以为他在断章取义地给我们提供伪代码呢。很高兴你进一步发表了我的评论,并提供了一个有效的答案@JamWaffles lol我刚刚试过,遇到了一个无限循环XD,但基本上除了在文档中添加一个DomainNodeInserted事件之外,我看不到其他方法<代码>$(document.body).bind(“DOMNodeInserted”,function(){…})
。我的问题是(作为测试数据)我在向节点添加文本。。。这触发了事件并导致无限循环,但只需修改对象的数据即可:P@JAAulde我知道XD,我在你指出的时候也有类似的想法:P可能是一个稍微次优的解决方案?尽管无限循环确实在web开发中占有一席之地-谢谢你的帮助,约瑟夫。太棒了。非常感谢约瑟夫!顺便提一下,有没有一种方法可以在文档的开头这样做一次,而不是每次我调用AJAX或修改DOM时都这样做?+1哈,哇,我还以为他在断章取义地给我们提供伪代码呢。很高兴你进一步发表了我的评论,并提供了一个有效的答案@JamWaffles lol我刚刚试过,遇到了一个无限循环XD,但基本上除了在文档中添加一个DomainNodeInserted事件之外,我看不到其他方法<代码>$(document.body).bind(“DOMNodeInserted”,function(){…})
。我的问题是(作为测试数据)我在向节点添加文本。。。这触发了事件并导致无限循环,但只需修改对象的数据即可:P@JAAulde我知道XD,我在你指出的时候也有类似的想法:P可能是一个稍微次优的解决方案?尽管无限循环确实在web开发中占有一席之地-P谢谢你的帮助Joseph。我想使用HTML5
data
attributes,但是这个站点至少需要在IE7上工作。这么旧的浏览器(在IE中是垃圾浏览器)是否通过jQuery支持数据属性?我相信是的。几乎所有浏览器都保留自定义属性,因此它们应该在任何地方都可以工作。测试它是确定的。我只能进入IE7(在IE8中),但如果你或任何人可以在IE6或其他东西中测试JSFIDLE,那就太棒了。我想使用HTML5
data
attributes,但是这个网站至少需要在IE7上工作。这么旧的浏览器(在IE中是垃圾浏览器)是否通过jQuery支持数据属性?我相信是的。几乎所有浏览器都保留自定义属性,因此它们应该在任何地方都可以工作。我只能使用IE7(在IE8中),但是如果你或者其他人可以在IE6或者其他什么东西中测试JSFIDLE,那就太棒了。