我有一个基于AJAX的网站导航。一个是index.html,另一个是profile.html。
两个页面的内容如下:
<html>
<head>
<script src="script1.js" type="text/javascript"></script>
</head>
<body>
<nav class="main-nav">.....{{nav-content}}.....</nav>
<div class"content">
---{{main-content}}-----
</div>
</body>
在这两个页面上,我都链接了网站上任何地方可能需要的所有脚本。
在profile.php上,我有一个使用$(“ div#mySliderTabs”)。sliderTabs();触发的选项卡小部件。
当我使用.load()加载profile.php的
<div class=".content"></div>
内容时,必须手动执行$(“ div#mySliderTabs”)。sliderTabs();再次使用.load()callack使sliderTabs工作。有什么方法可以使sliderTabs正常工作而无需再次触发脚本,并且仅将生成的html
<div class=".content"></div>
内容加载到当前页面中。 最佳答案
据我所知,SliderTabs需要一个DOM元素。这意味着需要将其实例化。
虽然还有其他选择
您可以加载新内容,将其保存在jQuery集合中,然后执行sliderTabs()
而不将其放入DOM中。然后,您可以随时添加它。但是,在您的AJAX调用之后,仍需要执行sliderTabs()
。
slideTabs可以使用冒泡事件来使(例如)单击事件起作用。像这样:
__
$('document').on('click', '#sliderButton', function() {
// do the sliding
});
即使之后加载了AJAX,这些按钮也将具有其事件侦听器。
关于javascript - 在页面加载之前在ajax请求的页面上执行脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27797815/