Javascript跳过一段代码,但在使用调试器时工作正常
我有一行非常简单的代码。我有剑道图书馆提供的标签Javascript跳过一段代码,但在使用调试器时工作正常,javascript,jquery,kendo-ui,Javascript,Jquery,Kendo Ui,我有一行非常简单的代码。我有剑道图书馆提供的标签 i = 0; x = 10; while (i < x) { var tabStrip = $("#myId").data("kendoTabStrip"); tabStrip.select(i); i++; } 当我一步一步地使用调试器时,一切都正常-tabStrip.selecti方法正在被调用,并且工作正常。但当我在没有调试器的情况下运行它时,它的行为就像没有这行代码一样。我不明白为什么,我也不知道如何解决这
i = 0;
x = 10;
while (i < x) {
var tabStrip = $("#myId").data("kendoTabStrip");
tabStrip.select(i);
i++;
}
当我一步一步地使用调试器时,一切都正常-tabStrip.selecti方法正在被调用,并且工作正常。但当我在没有调试器的情况下运行它时,它的行为就像没有这行代码一样。我不明白为什么,我也不知道如何解决这个问题。
i和x变量只是示例变量,可能while循环中调用方法的信息很重要
var tabGroupObject = $("<div>").attr("id", "myId")
tabGroupObject = $(tabGroupObject).kendoTabStrip({
animation: {
open: {
effects: "fadeIn"
}
}
});
var tabStrip = tabGroupObject.data("kendoTabStrip");
假设:-我假设您正在寻找一个ajax触发器事件,该事件在浏览器中被触发以响应tabScript的选择。
解决方案:-如果是这种情况,请知道浏览器会在一段时间内将一个元素上的所有ajax事件合并为一个事件,以减少不必要的post调用的数量,如果希望调用这些事件,您可以尝试添加一个延迟,否则它只会触发偶数,正如dfsq所提到的那样,偶数在tabSctrip.select9上被调用。似乎是一个同步问题,在JavaScript中处理Ajax调用或DOM修改时非常常见。这就是为什么当您一步一步地执行代码,并为操作提供足够的时间时,它会起作用
我的建议是阅读一些关于异步JavaScript的知识,并尝试实现一个回调函数,该函数在动画完成任务后触发。您希望看到什么?我的意思是,它显然只会选择9,仅此而已。@dfsq是的,但问题是它什么都不选择。与此类似,您需要包括正在使用的浏览器/操作系统,提供HTML代码以及如何设置tabStrip。或者更好的剑道小提琴。你应该展示一段更有意义的代码。从0-9调用selecti将使最后一个保持选中状态,并使以前的调用作废。这应该是一个comment@JuanMendes张贴答案,不要拘束自己