Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个特定选项卡上的jQuery选项卡自定义事件_Jquery_Tabs_Dialog - Fatal编程技术网

一个特定选项卡上的jQuery选项卡自定义事件

一个特定选项卡上的jQuery选项卡自定义事件,jquery,tabs,dialog,Jquery,Tabs,Dialog,我相信这对于更有经验的人来说是微不足道的。我试图阻止一个指定的选项卡查找并打开其相应的div。相反,请执行我指定的任何操作,例如打开对话框 我尝试绑定到选项卡,然后使用return false和preventDefault(),这通常适用于所有选项卡,但不是我缩小选择器时指定的选项卡,它只是像典型选项卡一样打开div,控制台没有错误 我也尝试过故意破坏特定的标签,没有它的div,这会导致各种愚蠢的东西。。。反正是坏代码 HTML 显然,我的方法是错误的。建议 谢谢你的时间 您需要使用该事件 演示

我相信这对于更有经验的人来说是微不足道的。我试图阻止一个指定的选项卡查找并打开其相应的div。相反,请执行我指定的任何操作,例如打开对话框

我尝试绑定到选项卡,然后使用return false和preventDefault(),这通常适用于所有选项卡,但不是我缩小选择器时指定的选项卡,它只是像典型选项卡一样打开div,控制台没有错误

我也尝试过故意破坏特定的标签,没有它的div,这会导致各种愚蠢的东西。。。反正是坏代码

HTML

显然,我的方法是错误的。建议

谢谢你的时间

您需要使用该事件

演示:

如果jQueryUI1.8

$("#tabs").bind('tabsselect', function (e, ui) {
    if ($(ui.panel).is('#customtab')) {
        console.log("do whatever I say here", ui);
        return false;
    }
});

演示:

似乎对我不起作用,但没有错误。我正在使用1.4.4和UI:1.8.1。。。。可能的原因?啊。非常好,谢谢!我遇到的另一个与您的解决方案无关的小问题是,对话框构造函数也引用了#customtab。不管您的解决方案中返回false,tabs.js仍然返回不匹配的片段标识符,就好像对应的div不存在一样。查看元素检查器后,很明显对话框构造函数使元素对选项卡不可用。不管怎么说,当单击自定义选项卡时,您是否试图显示一个对话框。将#customtab div保留为空,然后只需为对话框创建另一个即可。。。只是想知道是否可以用更少的资源来完成?为什么不能将一个简单的div作为占位符选项卡,并为对话框使用另一个元素
$("#tabs [href=#customtab]").bind('tabselect', function(){
  alert("do whatever I say here");
  return false;
});
$("#tabs").bind('tabsbeforeactivate', function (e, ui) {
    if (ui.newPanel.is('#customtab')) {
        console.log("do whatever I say here", ui);
        return false;
    }
});
$("#tabs").bind('tabsselect', function (e, ui) {
    if ($(ui.panel).is('#customtab')) {
        console.log("do whatever I say here", ui);
        return false;
    }
});