【发布时间】: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(索引为 0)
- 2
- 3
- 4
- 5
- 6
- 7(索引不是 1)
- 11
- 12(索引不是 2,但它会运行它的一部分 else if)
- 14(不点击控制台日志并在此行中断)
有人知道为什么会这样吗?
【问题讨论】:
-
“这是这个方法的执行方式:” 不,不是。
index不能同时是== 0和== 1。发生了其他事情,不是那样的。 Create an MCVE 并将其发布为问题中的堆栈片段(<>按钮)。这样做的几率非常高,您会找出问题所在;如果没有,sn-p 会让我们帮助您。 -
检查事件是否在具有不同索引的行中多次触发。顺便说一句,控制台没有击中和破坏是什么意思?我不确定你的观察是否正确
-
@T.J.Crowder 我不确定我还能提供多少信息,我和你一样困惑,还有什么对你有帮助的?
-
@A.Wolff 我已经检查并在索引中添加了一个手表,即使它进入那一秒,它也绝对是 0,否则如果
-
@Srb1313711:你必须放手:当它进入
else if时,它肯定不是0。它只是不是。selectisn't broken。一旦你放下对正在发生的事情的信念,你就会对实际发生的事情敞开心扉,不管那是什么。关于我们还需要知道什么,我说过:你需要建立一个MCVE。
标签: javascript jquery .net vb.net telerik