【问题标题】:Javascript is running if and else ifJavascript 正在运行 if 和 else if
【发布时间】:2015-11-13 10:49:21
【问题描述】:

我在我正在创建的应用程序中使用 Telerik,并且我有一个 javascript on.click 方法,当在 telerik:RadContextMenu 中单击项目时运行该方法。

            <telerik:RadContextMenu ID="tkDocumentList" runat="server" OnClientItemClicking="DocumentListOnClientItemClicking">
                <Items>
                    <telerik:RadMenuItem Text="Edit Document" />
                    <telerik:RadMenuItem Text="Delete Document" />
                    <telerik:RadMenuItem Text="Upload Document" />
                    <telerik:RadMenuItem Text="Download Document" />
                    <telerik:RadMenuItem IsSeparator="True" />
                </Items>
            </telerik:RadContextMenu>

该函数确定检查了哪个项目,然后执行一些逻辑。

function DocumentListOnClientItemClicking(sender, args) {
    var index = args.get_item().get_index();
    if (index == 0) {
        console.log('Toggle in edit');
        $('.documentdetails>.modalContent').toggleClass('show');
        $('.showedit').val("true");
    }
    else if (index == 1) {
            var result = confirm("Are you sure you want to delete this item?");
            args.set_cancel(!result);
            sender.hide();
    }
    else if (index == 2) {
        console.log('Toggle in upload');
        $('.documentdetails>.modalContent').toggleClass('show');
    }
}

我的问题是,当索引为 0 时,它会进入 if 和 else if,我试图解释我的问题。想象一下function DocumentListOnClientItemClicking(sender, args) {line:0,而最后的结局}line: 16。以下是此方法的执行方式:

  1. 1(索引为 0)
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7(索引不是 1)
  8. 11
  9. 12(索引不是 2,但它会运行它的一部分 else if)
  10. 14(不点击控制台日志并在此行中断)

有人知道为什么会这样吗?

【问题讨论】:

  • “这是这个方法的执行方式:” 不,不是。 index 不能同时是 == 0== 1。发生了其他事情,不是那样的。 Create an MCVE 并将其发布为问题中的堆栈片段(&lt;&gt; 按钮)。这样做的几率非常高,您会找出问题所在;如果没有,sn-p 会让我们帮助您。
  • 检查事件是否在具有不同索引的行中多次触发。顺便说一句,控制台没有击中和破坏是什么意思?我不确定你的观察是否正确
  • @T.J.Crowder 我不确定我还能提供多少信息,我和你一样困惑,还有什么对你有帮助的?
  • @A.Wolff 我已经检查并在索引中添加了一个手表,即使它进入那一秒,它也绝对是 0,否则如果
  • @Srb1313711:你必须放手:当它进入else if时,它肯定不是0。它只是不是。 select isn't broken。一旦你放下对正在发生的事情的信念,你就会对实际发生的事情敞开心扉,不管那是什么。关于我们还需要知道什么,我说过:你需要建立一个MCVE

标签: javascript jquery .net vb.net telerik


【解决方案1】:

这并没有完全解决我的问题,但是 Telerik 上下文菜单位于更新面板中,然后单击其中一项将页面返回。阻止这些回发解决了这个问题,但在我的特定应用程序中导致了其他问题。我不知道为什么这会导致问题,但这是我能想到的最好的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 2011-03-15
    相关资源
    最近更新 更多