我正在为jquery ui tab控件添加一些自定义选项卡。
$("#tabs").tabs("add","#tabContent0","CLICK ME TO CHANGE PAGE",0);
$('a[href="#tabContent0"]').attr("href","javascript:window.location='http://www.google.co.uk';");
是的,这有点像黑客攻击,但它正是我所需要的,并提供了一种很好的方式来将链接返回到以前的父页面。
jquery抛出以下异常:“jQuery UI选项卡:不匹配的片段标识符。”
这是抛出的行似乎试图使标签容器在jquery ui中可见(确切的行不会有帮助,因为缩小和从官方站点自定义构建)。
显然我只是重定向但是jquery有额外的代码来选择选项卡(它不存在)。在Internet Explorer中,如果用户启用了脚本错误,他们将看到在窗口位置发生变化之前抛出异常,这是我无法实现的。
我不能把try catch放在这个代码中,因为它是jquery ui中抛出异常的代码。
无论如何,我可以防止抛出此异常或以不同的方式实现相同的方式而无需修改jquery ui ?
编辑:我现在想知道是否有办法覆盖由jquery放置在元素上的on click事件挂钩..它肯定在那里我无法看到的东西。
编辑:我现在必须注销,但是我已经取得了一些进展,如果有人可以帮助我获得正确的URL,使用此代码可以防止异常,但重定向到“http:// myurl / undefined”$('#tabs').bind('tabsselect', function(event, ui) {
if(ui.index<2) //ignore this will change to get current tab count -1 (so the end tab is left as it is
{
window.location=$('#'+ui.tab).attr("href"); //attr href is undefined, how do i use ui.tab properly to get the right url
return false;
}
});
答案 0 :(得分:2)
在Chrome和IE8中,它对我有用。
我也尝试过这段代码并且有效:
$("#tabs").tabs("add","#tabContent0","CLICK ME TO CHANGE PAGE",0);
$('a[href="#tabContent0"]').click(function() {
document.location='http://www.google.co.uk/';
});
我没有更改href
属性,而是在新标签的click
事件上添加了一个处理程序。这将使标签切换,然后更改位置。
答案 1 :(得分:1)
来自jQuery UI文档:
$('#example').tabs({
select: function(event, ui) {
var url = $.data(ui.tab, 'load.tabs');
if( url ) {
location.href = url;
return false;
}
return true;
}
});
虽然,jQuery的标签,呃,方法,应该支持传递标签和面板的选择器,这样你就可以创建链接,而不必反对刺。