jQuery选项卡在.preventDefault()之后更改选项卡

jQuery选项卡在.preventDefault()之后更改选项卡,jquery,jquery-ui,jquery-ui-tabs,Jquery,Jquery Ui,Jquery Ui Tabs,我需要停止基于特定条件的选项卡更改的默认行为。我的问题是,一旦我在选项卡上发布了.preventDefault(),我就无法在.beforeActivate事件之前更改到用户想要转到的选项卡。我使用的是jQuery messagebox插件,在用户确认之前不能暂停代码 <script> $("#tabs").tabs({}); </script> <div id="tabs"> <ul> <li><a href="a

我需要停止基于特定条件的选项卡更改的默认行为。我的问题是,一旦我在选项卡上发布了
.preventDefault()
,我就无法在
.beforeActivate
事件之前更改到用户想要转到的选项卡。我使用的是jQuery messagebox插件,在用户确认之前不能暂停代码

<script>
$("#tabs").tabs({});
</script>

<div id="tabs">
  <ul>
    <li><a href="ajax/divs/tabbed/tripinfo.php?id=<?php echo $_REQUEST["id"]; ?>">Schedule</a></li>
    <li><a href="ajax/divs/tabbed/tripinfo_expenses.php?id=<?php echo $_REQUEST["id"]; ?>">Expenses</a></li>
    <li><a href="ajax/divs/tabbed/tripinfo_fuel.php?id=<?php echo $_REQUEST["id"]; ?>">Fuel Log</a></li>
    <li><a href="ajax/divs/tabbed/equipment_info.php?id=<?php echo $_REQUEST["id"]; ?>">Equipment</a></li>
    <li><a href="ajax/divs/tabbed/tripinfo_route.php?id=<?php echo $_REQUEST["id"]; ?>">Route Configuration</a></li>
  </ul>
</div>

<script>
var rows = $("#numbered tbody tr").not(":last").length;
$("#tabs").tabs({
    beforeActivate: function (event, ui) {
        // If user exits without saving alert
        if (rows != $("#numbered tbody tr").not(":last").length) {
            event.preventDefault();
            $.confirm('YOU HAVE MADE CHANGES TO THIS ROUTE. ARE YOU SURE YOU WANT TO LEAVE THE PAGE? ALL CHANGES WILL BE LOST!' , function (answer) {
                if (!answer) {
                    return false;
                } else {
                    // User agrees so swicth tabs so take him to the one he requested.
                    $("#tabs").tabs("option", "active", ui.newTab.index());
                }
            });
        }           
    }   
})
</script>

$(“#制表符”).tabs({});
变量行=$(“#编号的tbody tr”)。非(“:last”)。长度; $(“#制表符”)。制表符({ beforeActivate:功能(事件、用户界面){ //如果用户未保存警报而退出 如果(行数!=$(“#编号的tbody tr”).not(“:last”).length){ event.preventDefault(); $.confirm('您已对此路由进行了更改。是否确实要离开页面?所有更改都将丢失!',函数(应答){ 如果(!回答){ 返回false; }否则{ //用户同意,所以切换标签,让他转到他请求的那个。 $(“#tabs”).tabs(“选项”,“活动”,ui.newTab.index()); } }); } } })
您的意思是
$(“选项卡”).tabs(“选项”,“活动”,ui.newTab.index())不工作?你能创建一个..吗?事实上,我意识到问题在于beforeChange事件是循环的。请在此处查看我的答案,如果有帮助,请进行投票;)正是我使用的解决方案