下拉菜单不起作用

时间:2014-04-06 15:39:56

标签: javascript three.js dat.gui

我正在开发一个简单的Web应用程序,我正在使用两个js库:dat.gui和three.js.

我的问题是下拉菜单已锁定。我无法打开它。

// gui initialization (dat.gui)
function initGui() {

    var Options = function() {
        this.tenda = 'bar';
    };

    config = new Options();
    var gui = new dat.GUI();
    var subGui = gui.addFolder('Setting');
    subGui.open();

    // callbacks
    subGui.add( config, 'tenda', ['bar', 'pie', 'area']).
        onChange(
            function() {
                if (config.tenda === 'bar') { ... }
                else if (config.tenda === 'pie') { ... }
                else if (config.tenda === 'area') { ... }
            }
        );
};

在网上阅读,这似乎是一个已知问题,但在某些例子中,我看到下拉菜单运行良好。我是js的新手,我想“也许有一些范围问题”,所以我将初始化过程放在一个完成工作的函数中。但问题仍然存在。

我正在使用Ubuntu / Chrome和Ubuntu / Firefox。您可以检查整个代码here,我在其中使用复选框而不是下拉菜单。

3 个答案:

答案 0 :(得分:1)

我面临同样的问题。在我的代码中,我进行了更改:

var controls = new THREE.OrbitControls(camera);

var controls = new THREE.OrbitControls(camera, renderer.domElement);

答案 1 :(得分:0)

我面临同样的问题。在我的代码中,我听了鼠标点击事件。和回调函数:

function onDocumentMouseDown( event ) {
    event.preventDefault();

    ... //other code
}

我发现问题是“event.preventDefault();”,这会阻止点击下拉列表,所以通过评论,我的问题就解决了。您还可以查看与鼠标点击事件相关的其他功能。

答案 2 :(得分:0)

确保仅对绘图画布中的mouseEvents调用preventDefault即可解决问题(在Three.js的上下文中,并使用OrbitControls和raycaster进行鼠标单击选择)

d_marked = read.csv("deduplication_file_complete.csv")
d_chosen = filter(d_marked, keep_this_one == 1)

# some checks - you might want to do more
all(d_dedup$id %in% d_chosen) # expect TRUE
any(duplicated(d_chosen$id)) # expect FALSE