我的问题是,当我使用jquery将一个页面加载到div中时,script标记并没有按照我希望的方式激活(尽管我知道它们确实激活了)。
我已经看到了几种不同的加载脚本的方法(比如$.getScript();)。然而,无论我怎么尝试,我都不能获得效果,就像我实际将代码放在那里而不是加载它一样。
因此,我想我的问题是,我应该如何设置一些东西,使其在加载代码时具有与实际存在的代码相同的效果(就像以正常顺序激活代码一样)。
发布于 2012-05-23 10:41:15
我怀疑你会不会喜欢我的答案,因为它是邪恶的!但这是我知道的唯一办法。
您的脚本标记没有激活的原因是没有事件可以附加到它。因此,脚本不能自行激活。因此,下面是让它们运行的最简单的方法:
//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);发布于 2012-05-23 10:31:43
如果您正在询问如何将新元素插入到div中以响应click之类的事件,则应在主头脚本中使用以下内容:
$(document).on('click', "#mynewdiv", function() {----});一旦在文档中创建了具有该id的div,这将以该div为目标,该文档在页面加载时已经存在。
如果您有一个已经存在的包装器元素,并且您希望将特定于该元素的所有插入元素作为目标,则可以更精确地使用:
$("#wrapper").on('click', "*", function() {----});https://stackoverflow.com/questions/10712686
复制相似问题