Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 剑道UI树视图上下文右键单击会混淆选择_Javascript_Kendo Ui - Fatal编程技术网

Javascript 剑道UI树视图上下文右键单击会混淆选择

Javascript 剑道UI树视图上下文右键单击会混淆选择,javascript,kendo-ui,Javascript,Kendo Ui,下面,我尝试将更复杂的TreeView用法简化为一个显示潜在相关问题的小把戏,因为我无法在TreeView节点项上实现ContextMenu。步骤:在我的简化示例中,左键单击选择一个节点,然后右键单击另一个节点,最后使用escape解除,然后选择指示被混淆。我尝试过“return false”、选择(nothing)和preventDefault()都没有用 我的问题是:这是剑道UI中的一个bug,还是我在使用TreeView时遗漏了什么 #=项目名称# $(“#树_空间”).kendoTr

下面,我尝试将更复杂的TreeView用法简化为一个显示潜在相关问题的小把戏,因为我无法在TreeView节点项上实现ContextMenu。步骤:在我的简化示例中,左键单击选择一个节点,然后右键单击另一个节点,最后使用escape解除,然后选择指示被混淆。我尝试过“return false”、选择(nothing)和preventDefault()都没有用

我的问题是:这是剑道UI中的一个bug,还是我在使用TreeView时遗漏了什么


#=项目名称#
$(“#树_空间”).kendoTreeView({
数据源:[{Name:'Top',items:[{Name:'Item'},{Name:'Item'}]}],
模板:kendo.template($('#Tree_template').html())
});
$(“#树空间”).data(“kendoTreeView”).expand(“.k-item”);

我的全部目标是完全禁用TreeView节点上的剑道UI选择,允许我对放置在树节点中的元素实现左键单击(操作)和右键单击(上下文菜单)。然而,我还没有看到一种在TreeView上禁用select的方法。我确实发现JQuery.click()似乎确实起作用并取消选择剑道UI选项,但右键单击时无法弹出剑道UI上下文菜单,并显示其他工件-我想我在这里隔离了其中一个工件,希望能学到一些东西。

您可以尝试使用模板中的某些东西来控制这一点:

   <script type='text/x-kendo-template' id='Tree_template'>
        //Ideally, your server will return a collection that determines if the item can be selected, likewise, you could add a IsParentNode or something to indicate the item should be treated differently. 
        #if (item.CanSelect != 'null' && item.CanSelect==true)  { #
            <span>#: item.Name#</span>    
        #}else{#
            <span class='no-select'>#: item.Name#</span>    
        #}#   
   </script>

   <script type="text/javascript">
       $(document).ready(function () {
           //Add code here to tie into the onmousedown of all .no-select elements

            $(document).on("click", "no-select", function (e) {
                    e.preventDefault();                   
            });
       });
  </script>

//理想情况下,您的服务器将返回一个集合,确定是否可以选择该项。同样,您可以添加IsParentNode或其他内容,以指示应以不同方式对待该项。
#如果(item.CanSelect!=“null”&&item.CanSelect==true){#
#:项目名称
#}否则{#
#:项目名称
#}#   
$(文档).ready(函数(){
//在此处添加代码以连接到所有的onmousedown。无选择元素
$(文档)。在(“单击”、“不选择”功能上(e){
e、 预防默认值();
});
});

我还没有尝试过,但您可以搜索禁用html元素。并将其应用于父节点。它可能与mousedown()有关。但是,您必须为节点创建一个客户端模板,并添加类似于父节点样式“禁止单击”的内容,然后将禁用元素代码应用于“禁止单击”的所有项目。@lrb感谢您的想法。现在它在我的驾驶室外面,但我会开始阅读和挖掘,看看我能从中得到什么。你的回答让我相信我的小提琴触及了剑道UI错误/疏忽,而不是我遗漏了什么。此外,多亏了你们的评论,加上我能够检查事件处理程序,追溯源代码,然后遍历剑道UI代码,找到补丁,点击鼠标向下移动。为了避免上下文菜单扰乱选择,我进行了部分破解,然后发现这并不是我的全部问题(上下文菜单在简单情况下工作)。但是,有了新的信息和工具,我相信我现在就能解决这个问题。再次感谢!几个月前,我在使用剑道树视图时遇到了同样的问题,所以肯定不仅仅是你。如果可以的话,你应该给他们开一张支持票,也许我们可以帮你解决。
   <script type='text/x-kendo-template' id='Tree_template'>
        //Ideally, your server will return a collection that determines if the item can be selected, likewise, you could add a IsParentNode or something to indicate the item should be treated differently. 
        #if (item.CanSelect != 'null' && item.CanSelect==true)  { #
            <span>#: item.Name#</span>    
        #}else{#
            <span class='no-select'>#: item.Name#</span>    
        #}#   
   </script>

   <script type="text/javascript">
       $(document).ready(function () {
           //Add code here to tie into the onmousedown of all .no-select elements

            $(document).on("click", "no-select", function (e) {
                    e.preventDefault();                   
            });
       });
  </script>