我正在向 jquery ui 选项卡控件添加一些自定义选项卡。
$("#tabs").tabs("add","#tabContent0","CLICK ME TO CHANGE PAGE",0);
$('a[href="#tabContent0"]').attr("href","javascript:window.location='http://www.google.co.uk';");
是的,这有点 hack,但这正是我所需要的,并且提供了一种很好的方式来返回到以前父页面的链接。
jquery 抛出以下异常:“jQuery UI 选项卡:片段标识符不匹配。”
这是在似乎试图使选项卡容器在 jquery ui 中可见的行上抛出的(确切的行不会帮助缩小和从官方网站自定义构建)。
显然我只是重定向,但 jquery 有额外的代码来选择选项卡(不存在)。在 Internet Explorer 中,如果用户启用了脚本错误,他们将在窗口位置更改之前看到异常被抛出,这是我不可能发生的。
我不能在这段代码周围放置 try catch,因为抛出异常的是 jquery ui 中的代码。
有什么方法可以防止抛出此异常或以不同的方式实现同样的事情而无需修改 jquery ui ?
编辑:我现在想知道是否有一种方法可以覆盖 jquery 放置在元素上的单击事件 Hook 。它确实在做一些我看不到的事情。
编辑:我现在必须注销,但我已经取得了一些进展,如果有人可以帮助我获得正确的 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;
}
});
最佳答案
它在 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
事件上添加了一个处理程序。这将使选项卡切换,然后位置发生变化。
关于javascript - 使用 jQuery UI 选项卡防止异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6194170/