简体   繁体   English

不要在标签点击事件上切换标签

[英]Do not switch tab on tab click event

I want to call a function whenever user clicks on tab, and if that function returns false i want to stay on the same tab, else move to tab which was pressed by the user. 我想在用户单击选项卡时调用一个函数,如果该函数返回false,我想保留在同一选项卡上,否则移至用户按下的选项卡。

I am binding an event here on tab switch. 我在选项卡开关上绑定一个事件。

$(".selector").tabs();
$(".selector").bind("tabsactivate", function(event, ui) {
  alert('oldTab = ' + ui.oldTab.index());
  alert('newTab = ' + ui.newTab.index());
  if (some_condition)
    console.log("EQUAL");
  else {
    BootstrapDialog.confirm({
      title: 'WARNING',
      message: 'You have not saved the changes.Do you want to save it?.',
      type: BootstrapDialog.TYPE_WARNING,
      draggable: true,
      callback: function(result) {

        //if user presses ok, then i want to stay on the previous tab else move to the tab pressed 

        if (result) {
          //stay on the same tab

          $(".selector").tabs("option", "active", ui.oldTab.index());

        } else
        //moved to pressed tab
      }
    });
  }
}
});

But when i do this way, the problem is, because of this $( ".selector" ).tabs( "option", "active", index ); 但是当我这样做时,问题是,因为这个$( ".selector" ).tabs( "option", "active", index ); this bind event is triggered again.And this confirmation dialog box comes up again. 再次触发此绑定事件。再次出现此确认对话框。 I dont want this bind event to execute again, is there any other way to stay on the earlier tab or how to avoid this scenario? 我不希望此bind事件再次执行,是否还有其他方法可以保留在较早的选项卡上,或者如何避免这种情况?

$('.selector').on('click',function(){
    if (flag == false) {
        $(this).removeClass('active in') ;                 
        return false;
    }
})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM