javascript不会触发新ID

时间:2018-01-03 18:06:47

标签: javascript jquery html

我是新来的,我试图为自己编写一个小工具,但我遇到了一个问题。我搜索过,但无法找到合适的解决方案。我甚至知道这是什么问题,但我不知道如何解决它。

我有一个<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>

1 个答案:

答案 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不是干净的编码。我认为有更好的方法来实现你想要的东西,但这会回答你的问题。