Jquery';追加将导致再次执行脚本块

Jquery';追加将导致再次执行脚本块,jquery,Jquery,如果我使用appendTo来移动DOM树中被移动的脚本块周围的部分,它们将重新运行,即运行两次 例如: 有没有更好的方法来移动DOM节,而不必再次执行其中的脚本块?两件事: 首先,将脚本直接嵌入到代码中不是一个好的做法。它们应该在标题中引用,并包含在单独的文件中 其次,我认为不可能阻止该脚本以编写的方式再次运行,因为appendTo()会对您正在查看的DOM元素进行HTML重写。这意味着您需要直接访问文本,而不是整个元素@Ohgodwhy的解决方案是正确的: $("#one").text().

如果我使用appendTo来移动DOM树中被移动的脚本块周围的部分,它们将重新运行,即运行两次

例如:

有没有更好的方法来移动DOM节,而不必再次执行其中的脚本块?

两件事:

首先,将脚本直接嵌入到代码中不是一个好的做法。它们应该在标题中引用,并包含在单独的文件中

其次,我认为不可能阻止该脚本以编写的方式再次运行,因为
appendTo()
会对您正在查看的DOM元素进行HTML重写。这意味着您需要直接访问文本,而不是整个元素@Ohgodwhy的解决方案是正确的:

$("#one").text().appendTo("#two")

然而(如果这不是一个家庭作业的问题),我恳求你考虑把你的脚本移到你的页眉上,因为这是目前的最佳实践。

< P>我之前必须做一些类似的事情…有点黑,但是

HTML


$(“#一”).text().appendTo(“#二”)
哦,脚本在“一”中。。你想让脚本标签和它一起传输吗?只是不要再跑了?没有双关语指向“哦,上帝,为什么?”但“哦,上帝!为什么?”@teewuane不要紧。我只需要在不再次执行脚本的情况下移动dom。脚本是在codebehind中动态创建的,因此不能包含在单独的文件中。@user357320您可以在服务器端代码中使用低级dom提取器将所有脚本标记移到头部(顺序),然后交付该文件@user357320您不能创建一个通用方法来完成codebehind的工作并传入参数吗?您所做的听起来真是个坏主意。@Pheonixblade9是动态表单生成器的一部分,在为每个控件实例创建jquery代码(包括函数名)时,需要动态创建javascript。@ohgodwhy Yes。或者可能将注入的代码收集到单个函数中,然后在appendTo之后调用该函数。
<div id="one">
 a
 <script type="text/javascript">
     if(times_executed == 0){
         alert(1);
         times_executed+=1;
     } 
 </script>
 </div>
 <div id="two">
  b
 </div>​
times_executed = 0;


$("#one").appendTo("#two");​