我为客户构建了一个站点,当用户单击导航链接时,链接页面的内容会动态加载并使用 JQuery 转换,而不是加载新页面。
我遇到的问题是,因为它没有加载新页面,所以 $(document).ready 不会再次触发,并且各个页面上的任何 JS 都被破坏了。例如,如果您访问 http://www.woodlandexotica.com/species.php该页面工作正常,但如果您尝试从 http://www.woodlandexotica.com/index_dev.php 导航到该页面, JS 将无法工作。
我不是 JS 方面的专家,我非常感谢所有帮助!
最佳答案
问题在于,当您调用“.load()”时,您正在使用 URL 字符串和选择器后缀从加载的内容中提取。当您以这种方式使用“.load()”时,jQuery 会删除所有脚本并且不会运行它们。除了实现您自己的“.load( )”,或者(最好)让您加载的其他页面不是是完整的 HTML 页面。如果您在 URL 字符串上使用不带选择器后缀的“.load()”,则 jQuery 会运行脚本。
参见 jQuery bug 6307更多。该错误不会被修复,但希望文档会得到改进。
关于javascript - $(document).ready 之外的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099778/