Javascript 是 运行 如果和否则如果

Javascript is running if and else if

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

            <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(未命中控制台日志并在此行中断)

有谁知道为什么会这样?

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