我有一个基于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/

10-10 06:22