我注意到,当我通过 javascript 更改表单元素的 ID 或名称时,与其关联的 jquery 事件不再存在。我已经在 Firefox 17 和 IE 10 上试过了。这是设计使然吗?如果是这样,有什么办法可以防止它?
更新:例如,请查看http://jsfiddle.net/qHH7P/2/。
我正在添加按钮以通过 jquery 删除行。当我删除第一行时,我给第二行中的元素一个新的名称和 ID。然后该剩余行的删除按钮不再触发该事件。我需要重命名元素,因为 ASP.NET MVC 需要在绑定时为对象集合使用特定的命名约定。这就是为什么我需要用“0”而不是“1”重命名它们。我正在重命名
var regexpattern = new RegExp("WorkspaceQuestionSets\\[.+\\]", "g");
$(this).html($(this).html().replace(regexpattern, "WorkspaceQuestionSets[" + index + "]"));
var regexpattern = new RegExp("WorkspaceQuestionSets_.+__", "g");
$(this).html($(this).html().replace(regexpattern, "WorkspaceQuestionSets_" + index + "__"));
我刚刚意识到我什至没有重命名按钮。因此,事件消失的意义就更小了。但是,如果我注释掉重命名元素的代码,事件仍然存在。