好的,这是我的问题。 我有一个页面,我使用切换显示/隐藏有关文章的信息,只需单击名称即可。 我有另一个页面,使用jQuery UI选项卡来显示相同的页面,但具有不同的参数(确切地说3个选项卡:按费率排序,按日期和名称)。jQuery .toggle()使用jQuery UI标签的奇怪行为
因此,一切工作正常,直到我开始切换标签,并尝试切换此其他标签中的元素: - 有时一切正常 - 有时什么都没有发生。 - 有时它会多次切换,就好像该脚本已加载好几次一样。
更准确地说,这里是我的代码:
页面,在这里我显示选项卡:
<link rel="stylesheet" href="/projectsoul/CSS/design/jquery.ui.all.css" />
<link rel="stylesheet" href="/projectsoul/CSS/design/jquery-ui-1.8.21.custom.css" />
<script type="text/javascript" src="/projectsoul/JS/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="/projectsoul/JS/jquery-1.7.2.js"></script>
<script type="text/javascript" src="/projectsoul/JS/jquery-ui-1.8.21.custom.min.js"> </script>
...
...
...
<div id="content" class="content" class="ui-tabs">
<ul>
<li><a href="articles.php" ><span>By Date</span></a></li>
<li><a href="articles.php?orderby=rate"><span>By Rate</span></a></li>
<li><a href="articles.php?orderby=name"><span>By Name</span></a></li>
</ul>
</div>
....
....
....
$("#content").tabs({
ajaxOptions: {
error: function(xhr, status, index, anchor) {
$(anchor.hash).html(
"Fail to load content."
);
}
}
});
$("#content").tabs({
fx: { height: 'toggle', opacity: 'toggle', duration: 'slow' }
});
$('#content').tabs({
load: function(event, ui) {
$(ui.panel).delegate('.intabs', 'click', function(event) {
$(ui.panel).load(this.href);
event.preventDefault();
});
}
});
而现在,这里是页面我在这些选项卡显示:
<link rel="stylesheet" href="/projectsoul/CSS/design/jquery.ui.all.css" />
<link rel="stylesheet" href="/projectsoul/CSS/design/jquery-ui-1.8.21.custom.css" />
<script type="text/javascript" src="/projectsoul/JS/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="/projectsoul/JS/jquery-1.7.2.js"></script>
<script type="text/javascript" src="/projectsoul/JS/jquery-ui-1.8.21.custom.min.js"></script>
<?php
while($articles= $articles_data->fetch())
{?>
<h2><a class="toggler" id="displayText<?php echo $articles["id"] ?>"><?php echo nl2br(htmlspecialchars($articles["name"])); ?></a></h2>
...
...
<div class="toggle" id="displayText<?php echo $articles["id"] ?>_content">
// CONTENT
</div>
}
// END OF WHILE
<script>
$(document).ready(function() {
$('.toggle').hide();
$('.toggler').click(function() {
var target = this.id + '_content';
// Use ID-selectors to toggle a single element.
$('#' + target).toggle();
// Use class-selectors to toggle groups of elements.
$('.' + target).toggle();
$('.toggle.always').toggle();
});
});
</script>
由于我说,单独显示第二页时的切换工作。但在选项卡中,切换后它不再工作。
我已经搜索,但没有发现任何似乎是这样的东西... 任何想法?
我希望我自己清楚^^”
,但我知道我需要它。但即使我删除了一个加载项,它仍然无法处理某些项目。真奇怪:/ – 2012-07-10 22:17:21
你如何在页面中加入页面?除非你使用的是iframe,否则你的所有脚本和css文件都会进入标签页(所以你不需要在包含的页面中加载任何css或jquery文件)。另外,如果你的页面部分只在你包含jquery两次时才工作,那么你的代码有问题(除非你修改了其中一个jquery文件,在这种情况下你需要重新考虑这些修改) – PeaBucket 2012-07-10 22:41:15
是的,经过一些测试,每次我切换选项卡,内容再次加载(即使内容加载到第一个选项卡中),以及导致错误的原因。两种选择:是否有一种方法可以在切换完成后重新加载所有标签内容,或者是否有方法不加载已加载的内容? ;) – 2012-07-11 06:13:49