我有一段使用.before()的代码,它正在移动的代码具有内联javascript,其中.before()重新执行。有没有办法阻止.before()形式重新执行javascript代码?
答案 0 :(得分:3)
您可以使用.before()
的元素并从中删除脚本标记。 (另)
$(newHTML).find('script').remove().end().insertBefore(whereToInsert);
答案 1 :(得分:1)
除了将javascript移出你正在重新定位的HTML之外,我想你可以在第一次执行代码后设置一个标志true
,并在执行时检查它。
答案 2 :(得分:0)
也许您可以分离脚本,移动元素,然后重新附加(如果您仍然需要它)。像这样:
var theScript = $('#foo').find('script').detach();
var everythingElse = $('#foo'); // everything minus the script(s)
$('#baz').before( everythingElse ); // Document reflow happens
everythingElse.append( theScript ); // now add it back in?
未经测试,但也许值得一试。