Javascript跳过一段代码,但在使用调试器完成后工作正常

时间:2015-11-12 20:28:39

标签: javascript jquery kendo-ui

我有一行非常简单的代码。我有一个由Kendo库提供的标签页

i = 0;
x = 10;
while (i < x) {
    var tabStrip = $("#myId").data("kendoTabStrip");
    tabStrip.select(i);
    i++;
}

当我一步一步地使用调试器时,一切正常 - tabStrip.select(i)方法被调用并且工作正常。但是当我在没有调试器的情况下运行它时,它就像没有这条线一样。我不明白为什么,我也不知道如何解决这个问题。 (i和x变量只是样本变量,也许在while循环中调用该方法的信息很重要)

var tabGroupObject = $("<div>").attr("id", "myId")
tabGroupObject = $(tabGroupObject).kendoTabStrip({
    animation: {
        open: {
            effects: "fadeIn"
        }
    }
});
var tabStrip = tabGroupObject.data("kendoTabStrip");

2 个答案:

答案 0 :(得分:1)

假设: - 我假设您正在寻找一个ajax触发事件,该事件在浏览器中被激活以响应选择的tabScript。
解决方案: - 如果是这样的话请知道浏览器将一个元素内的所有ajax事件在一定时间内组合成一个事件,以减少不需要的帖子数量调用,你可以做的是尝试添加延迟,如果你想要调用这些事件,否则它只会触发在dfsq提到的tabSctrip.select(9)上调用的偶数。

答案 1 :(得分:1)

似乎是一个同步问题,在处理Ajax调用或DOM修改时在JavaScript中非常常见。这就是为什么当你逐步执行代码时给它提供足够的时间来实现这些操作的原因。

我的建议是阅读一些关于异步JavaScript的内容,并尝试实现一个动画完成任务后触发的回调函数。