Javascript Telerik RadTreeView OnClientNodeChecked与IE9和x2B的兼容性问题;
我有一个RadTreeView,具有动态级别和基于条件的可检查节点。某些级别可能没有可检查节点、某些可检查节点或所有可检查节点 我使用OnClientNodeChecked事件将选中节点的ID保留在一个隐藏字段中,以供以后使用,并更新选中节点计数器 每次用户单击节点旁边的复选框时,都会触发此事件。现在,如果用户按住shift键并单击复选框,则应选中/取消选中所有可检查的子节点 这是treeview控件:Javascript Telerik RadTreeView OnClientNodeChecked与IE9和x2B的兼容性问题;,javascript,jquery,telerik,client-side,radtreeview,Javascript,Jquery,Telerik,Client Side,Radtreeview,我有一个RadTreeView,具有动态级别和基于条件的可检查节点。某些级别可能没有可检查节点、某些可检查节点或所有可检查节点 我使用OnClientNodeChecked事件将选中节点的ID保留在一个隐藏字段中,以供以后使用,并更新选中节点计数器 每次用户单击节点旁边的复选框时,都会触发此事件。现在,如果用户按住shift键并单击复选框,则应选中/取消选中所有可检查的子节点 这是treeview控件: <telerik:RadTreeView RenderMode="Lightweigh
<telerik:RadTreeView RenderMode="Lightweight" runat="Server" ID="treeAccounts" EnableDragAndDrop="false" EnableDragAndDropBetweenNodes="false" Skin="Vista" CheckBoxes="True"
OnClientLoad="initializeSelectedNodes" OnClientNodeChecked="treeNodeChecked">
</telerik:RadTreeView>
下面是javascript函数:(在OnClientNodeChecked中调用treeNodeChecked)
var树;
函数树已取消选中(发送方、事件参数){
tree=$find(“”);
var node=eventArgs.get_node();
//在这里,我保存选中节点的ID
更新所选节点(节点);
if(eventArgs._domEvent.shiftKey | | event.shiftKey){
var children=node.get_allNodes();
var checkedState=node.get_checked();
//如果选中的节点有子节点且按下shift键
//单击复选框后,我选中/取消选中其子项
//节点。
适用于(儿童为m)
{
var child=childs[m];
child.set_checked(checkedState);
//在这里,我保存子节点的ID
updateSelectedNodes(子节点);
}
}
}
这在Chrome、Firefox和IE8-中非常有效,但在IE9+中不起作用。
问题是在IE9+中,事件参数和事件移位键都是未定义的
我还尝试检查事件。keyCode或事件。这是但由于事件不是按键或按键,因此它们也未定义
关于如何在IE9+中实现这一点,有什么想法吗?提前谢谢。在到处挖掘之后,我找到了一条路 我添加了以下代码:
var shiftKeyPressed;
document.addEventListener("keydown", keyDownEvent, false);
function keyDownEvent(e) {
var keyCode = e.keyCode;
if(keyCode==16) {
shiftKeyPressed = true;
}
}
document.addEventListener("keyup", keyUpEvent, false);
function keyUpEvent(e) {
var keyCode = e.keyCode;
if(keyCode==16) {
shiftKeyPressed = false;
}
}
然后,当我检查是否按下shift键时,我添加了新变量:
if (eventArgs._domEvent.shiftKey || event.shiftKey || shiftKeyPressed){...}
现在,它在每个浏览器中都能正常工作
if (eventArgs._domEvent.shiftKey || event.shiftKey || shiftKeyPressed){...}