是否可以区分点击和选择?

时间:2011-09-27 14:27:32

标签: html onclick visibility textselection

我有一个隐藏孩子的div。单击div将切换孩子的可见性。这很有效。

现在用户想要在孩子中选择一些文本。拖动选择有效,但只要释放鼠标按钮,div就会关闭(因为inClick处理程序)。

如果可能的话,我仍然希望能够从孩子的任何地方关闭div因为孩子可能很大(数百行,所以滚动到{{{{{{{{ 1}}切换孩子。)

需要使用IE6 +和所有理智的浏览器。我不能直接使用jQuery :-(但我可以从jQuery复制代码,所以如果jQuery有一个解决方案,我克隆它。

建议?

2 个答案:

答案 0 :(得分:1)

您可以在DIV侧面进行切换控制:

toggle.onclick = function () { 
    if ( this.className === 'closed' ) {
        this.className = '';
        content.style.display = '';
    } else {
        this.className = 'closed';
        content.style.display = 'none';
    }
};

现场演示: http://jsfiddle.net/HcVfW/

答案 1 :(得分:0)

在关闭内部div之前,您可以检查window.getSelection()以查看它是否包含任何内容。

对于IE6,您需要将其替换为document.selection

请注意,这是IE的专有权,因此您需要通过对象检测来区分使用哪种方法。

Working Demo