我的问题是当我使用jquery将页面加载到div中时,脚本标记不会按照我希望的方式激活(尽管它们会根据我的判断激活)。
我已经看到了一些加载脚本的方法(例如$ .getScript();)。但是,无论我尝试什么,我都无法像在实际放置代码而不是加载代码一样工作。
因此,我想我的问题是我应该如何设置一些东西,使其具有与实际存在的代码相同的效果(如同通常以相同的顺序激活)。
答案 0 :(得分:0)
如果您询问如何将新元素插入div中以响应click
等事件,则应在主标题脚本中使用以下内容:
$(document).on('click', "#mynewdiv", function() {----});
一旦在文档内部创建了div,它将以该id为目标,该文档已经存在于页面加载中。
如果你有一个已经存在的包装元素,并且你想要定位特定于该元素的所有插入元素,你可以更精确地使用:
$("#wrapper").on('click', "*", function() {----});
答案 1 :(得分:0)
我怀疑你会喜欢我的答案,因为它的邪恶!但这是我知道的唯一方法。
脚本标记未激活的原因是没有将其附加到的事件。因此,脚本无法自行激活。所以这是让它们运行的最简单方法:
//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);