很难想出这个问题的标题。更改的ID没有被jQuery找到
更多的概念证明,我想知道为什么这不起作用。我试图做的是使用jquery事件来更改ID属性,然后使用绑定到这个新更改的ID的另一个jquery事件。
例如:
<?php
echo <<<END
<html>
<head>
<style>
#before {
color:maroon;
}
#after {
color:blue;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>Test</title>
<script type="text/javascript">
$(document).ready(function(){
$("#before").hover(function() {
$(this).attr("id","after");
});
$("#after").click(function() {
alert("Handler for .click() called.");
});
});
</script>
</head>
<body>
<p id="before">TEST TEXT</p>
</body>
</html>
END;
?>
悬停在我的测试文本,从栗色的颜色变为蓝色,符合市场预期。这是我的理解,文本现在将具有“后”的ID和点击事件处理函数单击时应用。但是,情况并非如此,快速事件处理程序及其关联的警报似乎不会触发。
我是新来的jquery有没有更新处理函数我忽略?
你不能这样做后触发click事件,既然选择,只能判断在你的情况准备好了...你需要使用事件代表团...我也会推荐c挂一个类的属性,而不是更改ID – 2014-10-10 03:14:56
你是否暗示这会在document.ready之外工作?或者你是否有效地说,在其ID改变后不可能与元素进行交互?有没有办法强制更新DOM? – lowcrawler 2014-10-10 03:17:30
将其标记为重复的,因为同样的概念也适用于此处...因为选择器在运行时期间发生更改 - http://jsfiddle.net/arunpjohny/6k2aemzu/1/ – 2014-10-10 03:18:09