我是新来的,我试图为自己编写一个小工具,但我遇到了一个问题。我搜索过,但无法找到合适的解决方案。我甚至知道这是什么问题,但我不知道如何解决它。
我有一个<div>
,会在点击时重命名另一个id
的{{1}}。但在此之后,使用新<div>
的{{1}}无法触及或触发任何事件。
以下是我的问题的代码示例。
HTML:
<div>
JS:
id
第一次点击事件工作正常,但第二次没有响应,我想这是因为DOM已经加载并且不知道新的<div id="example1">click me</div>
<div id="example2">click me, too.</div>
。
我该如何解决?
非常感谢任何帮助。 感谢。
编辑:我必须更改$('#example1').click(function () {
$('#example2').attr('id', 'exampleX');
console.log("done X");
});
$('#exampleX').click(function () {
$('this').attr('id', 'example2');
console.log("undone X");
});
,因为我构建了一个基于{更改<div>
的{{1}}的小工具或游戏{1}}之前点击了。此时,如果带有占位符id
的&#34;空白<img>
&#34; 更改<div>
并且必须存储一些信息,则会失败在val中,它没有什么,因为我无法点击任何事件。必须更改id才能知道哪些信息需要存储在<div>
。
答案 0 :(得分:1)
您可以更改Jquery代码。将元素ID更改为#exampleX
后,将该功能绑定到#exampleX
。
var click_function = function(){
$('this').attr('id', 'example2');
console.log("undone X");
};
$('#example1').on("click", function(){
$('#example2').attr('id', 'exampleX');
console.log("done X");
$('#exampleX').off("click").on("click",click_function);
});
这就是你要求的。 https://jsfiddle.net/8skz9pwr/2/
更改元素的ID不是干净的编码。我认为有更好的方法来实现你想要的东西,但这会回答你的问题。