我的问题是,当我使用 jquery 将页面加载到 div 中时,脚本标签不会按照我希望的方式激活(尽管它们确实会根据我的判断激活)。
我见过几种不同的方法(例如 $.getScript();)来加载脚本。但是,无论我尝试什么,我都无法使效果与我实际将代码放在那里而不是加载它的方式相同。
因此,我想我的问题是我应该如何设置一些东西以使其具有与实际存在的代码相同的效果(如以通常的相同顺序激活)。
如果您询问如何将新元素插入到 div 中以响应诸如 之类的事件click
,您应该在主标题脚本中使用以下内容:
$(document).on('click', "#mynewdiv", function() {----});
一旦在文档中创建了具有该 id 的 div,这将针对该 div,该文档在页面加载时已经存在。
如果您有一个已经存在的包装器元素,并且您想要定位特定于该元素的所有插入元素,您可以更精确地使用:
$("#wrapper").on('click', "*", function() {----});
我怀疑你会喜欢我的回答,因为它是邪恶的!但这是我知道的唯一方法。
您的脚本标签未激活的原因是没有将其附加到的事件。因此脚本无法自行激活。因此,这是使它们运行的最简单方法:
//find script tage in page html (your ajax call will return html, represented here as 'newPage'
var scriptAsStr = newPage.split('<script>')[1].split('</script>')[0];
// run that script with eval
eval(scriptAsStr);