Javascript &引用;主动的;选项没有';不要更改所选选项卡

Javascript &引用;主动的;选项没有';不要更改所选选项卡,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我使用的是jQueryMobile(不是jQueryUI)。我想做的是在不触发单击的情况下更改活动选项卡 HTML 表一内容 表二内容 表三内容 JS var-tabIndex=0; setInterval(函数(){ tabIndex++; 如果(tabIndex>=3) tabIndex=0; else if(tabIndex活动。基本上,选项->激活不用于更改选项卡选择,所以您要删除$(“#选项卡”)。选项卡(“选项”,“活动”,选项卡索引)来自您的代码?不,我希望它能为我工

我使用的是jQueryMobile(不是jQueryUI)。我想做的是在不触发单击的情况下更改活动选项卡

HTML


表一内容 表二内容 表三内容
JS

var-tabIndex=0;
setInterval(函数(){
tabIndex++;
如果(tabIndex>=3)
tabIndex=0;
else if(tabIndex<0)
tabIndex=2;
$(“选项卡”).tabs(“选项”,“活动”,选项卡索引);
}, 3000);


发生的情况是选项卡内容正在切换,但活动选项卡没有切换。在不启动点击事件和尽可能利用jQuery Mobile/UI的情况下,如何切换这两个选项?

为什么不模拟点击

$(“#选项卡”+tabIndex)。单击()

而不是


$(“#选项卡”).tabs(“选项”,“活动”,选项卡索引)

您可以使用
addClass
removeClass
$(“#tab”+tabIndex)
上对
ui-btn-active
类进行操作。在递增之前使用
removeClass
,递增之后使用
tabIndex
addClass

这是我的建议

更新

您可以使用开关语句根据
tabIndex
在选项卡中显示内容。在
tabIndex
递增之前隐藏所有选项卡内容,然后基于
tabIndex
显示选项卡内容

这是新的

更新2

由于,您可以在
选项卡Activate
事件上删除添加
ui btn类。我用什么更新了原来的小提琴。这是最新的

下面是您需要添加到代码中的
选项卡Activate
事件:

$("#tabs").on("tabsactivate", function(e, ui) {
  ui.oldTab.find("a").removeClass("ui-btn-active");
  ui.newTab.find("a").addClass("ui-btn-active").focus();
});

因为我有另一个代码已经因为不同的原因触发了单击,我认为只要更改活动选项卡,我就可以使用选项->活动。基本上,选项->激活不用于更改选项卡选择,所以您要删除
$(“#选项卡”)。选项卡(“选项”,“活动”,选项卡索引)来自您的代码?不,我希望它能为我工作。但是它看起来不会改变选项卡按钮本身,而只是更改选项卡内容。将此添加到您的答案并获得一些代表。谢谢。我感谢奥马尔的帮助。你应该得到大部分的荣誉!好的,现在确认活动选项卡选择是通过css完成的,而不是通过选项->活动。谢谢你,奥马尔!tabs小部件从jqueryui导入jQM。ui不添加活动类,但jQM添加。这可以像我向您展示的那样修复,也可以更改jQM js文件中的原始代码。编辑:您可以添加
.focus()
,因此另一种方法是在html标题中的jQM之后/之前导入jquery ui脚本?无需添加jquery ui;这个小部件已经包含在jQM中。
var tabIndex = 0;

setInterval(function(){

  tabIndex++;
  if (tabIndex >= 3)
     tabIndex = 0;
  else if (tabIndex < 0)
     tabIndex = 2;

  $("#tabs").tabs( "option", "active", tabIndex );

}, 3000);
$("#tabs").on("tabsactivate", function(e, ui) {
  ui.oldTab.find("a").removeClass("ui-btn-active");
  ui.newTab.find("a").addClass("ui-btn-active").focus();
});