Jquery 选项卡在单击按钮时重新加载内容
我正在使用 jquery 选项卡 (http://docs.jquery.com/UI /API/1.7.2/选项卡)。 Jquery 版本 1.3.2 和 Jquery UI 版本 1.7.2,我已经在 firefox 3.5.6 中进行了测试。
选择选项卡时,我只需将当前日期添加到内容区域 html 中。我还有一个类名“Button”的链接。单击此链接时,我想重新加载当前所选选项卡的内容。但使用我尝试过的解决方案,我无法让它发挥作用。我可以看到“单击按钮”事件已加载,但以下代码没有重新加载我的数据:
$(".Tabs").tabs('load', $(".Tabs").tabs('option', 'selected'));
我也一直在测试:
var selected = $(".Tabs").tabs('option', 'selected');
$(".Tabs").tabs('select', null);
$(".Tabs").tabs('select', selected);
但这也不起作用,按下按钮时我的选择方法永远不会被调用
这是我的 jquery 代码:
$(function() {
var $tabs = $(".Tabs").tabs({
selected: null,
select: function() {
alert("this doesn't run on button click");
//Sets Content's html to current date
$("#Content").html(new Date);
}
});
$('.Button').click(function() {
alert("this runs on button click");
//Here I want to reload the current selected tab
$(".Tabs").tabs('load', $(".Tabs").tabs('option', 'selected'));
return false;
});
$('.Tabs').tabs('select', 0); // Select first tab
});
这是 HTML:
<div class="Tabs">
<ul>
<li><a href="#Content">Tab1</a></li>
<li><a href="#Content">Tab2</a></li>
</ul>
<div id="Content">
</div>
</div>
<a class='Button' href='#'>Load Content Again</a>
I'm using jquery tabs (http://docs.jquery.com/UI/API/1.7.2/Tabs). Jquery version 1.3.2 and Jquery UI version 1.7.2 and Ive been testing in firefox 3.5.6.
When selecting a tab I just add the current date to the content area html. I also have a link with the class name "Button". When this link is clicked I want to reload the content of the currently selected tab. But with the solution I've tried I can't get it to work. I can see that the "button clicked" event is loaded but the following code isn't reloading my data:
$(".Tabs").tabs('load', $(".Tabs").tabs('option', 'selected'));
I have also been testing with:
var selected = $(".Tabs").tabs('option', 'selected');
$(".Tabs").tabs('select', null);
$(".Tabs").tabs('select', selected);
But that doesn't work either, my select method never gets called when pushing the button
This is my jquery code:
$(function() {
var $tabs = $(".Tabs").tabs({
selected: null,
select: function() {
alert("this doesn't run on button click");
//Sets Content's html to current date
$("#Content").html(new Date);
}
});
$('.Button').click(function() {
alert("this runs on button click");
//Here I want to reload the current selected tab
$(".Tabs").tabs('load', $(".Tabs").tabs('option', 'selected'));
return false;
});
$('.Tabs').tabs('select', 0); // Select first tab
});
This is the html:
<div class="Tabs">
<ul>
<li><a href="#Content">Tab1</a></li>
<li><a href="#Content">Tab2</a></li>
</ul>
<div id="Content">
</div>
</div>
<a class='Button' href='#'>Load Content Again</a>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您的
.Button
类位于加载的内容内,则需要使用 jQuery 的实时 功能。此外,由于
.Button
是一个链接,因此您需要在该函数内添加return false;
。通过查看您的代码,我不确定为什么您将其设置为在单击一个选项卡之前不加载选项卡。此外,单击任何选项卡将始终加载相同的内容(网址不会更改)。最后,您不需要使用
eval()
脚本(这可能是问题所在吗?)。除了这些问题之外,您的代码看起来应该可以工作。
我也不确定你的 json 是如何格式化的,所以我重写了这个假设以下 json 格式:
脚本
if your
.Button
class is inside the content that is loaded, you will need to use the live functionality of jQuery.Also, since
.Button
is a link, you'll need to addreturn false;
inside that function.From looking over your code, I'm not sure why you have it set up to not load a tab until after you click on one. Also clicking on any tab will always load the same content (the url doesn't change). And lastly, you shouldn't need to use
eval()
the script (could this be the problem?).Besides these issues, it looks like your code should work.
I'm also not sure how your json is formatted, so I rewrote this assuming the following json format:
Script
有两件事:
return false;
的onClick例程,通过说return 'false
,你告诉浏览器不 em> 实际上转到 href 属性中的 URL。Two things:
return false;
By sayingreturn 'false
you tell the browser to not actually go to the URL in the href attribute.