D3树节点双击高亮文本

use*_*516 5 javascript tree svg d3.js

我有一个树视图(类似于http://mbostock.github.com/d3/talk/20111018/tree.html),除了我将展开/合同节点从单击更改为双击事件:

也就是说,而不是

.on("click", function(d) { toggle(d); update(d); });
Run Code Online (Sandbox Code Playgroud)

我在用:

.on("dblclick", function(d) { toggle(d); update(d); });
Run Code Online (Sandbox Code Playgroud)

它运作良好.问题是双击会突出显示节点上的文本标签.它不会影响转换,但它非常烦人.除了删除节点并在转换结束时将其添加回来之外,有没有人知道阻止这种情况发生的方法?

顺便说一下,我已经尝试过添加

d3.event.preventDefault()
Run Code Online (Sandbox Code Playgroud)

在双击事件中,它没有任何帮助.

zon*_*eil 1

谷歌返回以下结果: http://chris-barr.com/index.php/entry/disable_text_selection_with_jquery/

该页面上的代码是

$(function(){
    $.extend($.fn.disableTextSelect = function() {
        return this.each(function(){
            if($.browser.mozilla){//Firefox
                $(this).css('MozUserSelect','none');
            }else if($.browser.msie){//IE
                $(this).bind('selectstart',function(){return false;});
            }else{//Opera, etc.
                $(this).mousedown(function(){return false;});
            }
        });
    });
    $('.noSelect').disableTextSelect();//No text selection on elements with a class of 'noSelect'
});
Run Code Online (Sandbox Code Playgroud)

但是,在这种情况下,您可以将“.noSelect”替换为“.node”,并且它应该禁用所有节点的文本突出显示。