处理元素外部的点击而不使用jquery

时间:2010-12-01 01:54:55

标签: javascript jquery event-handling

我想实现像这样的解决方案

How do I detect a click outside an element?

但是我正在使用另一个已定义$()函数的javascript库

有什么建议吗?

3 个答案:

答案 0 :(得分:6)

这很容易实现。为一个功能加载jQuery库会很遗憾。

如果您正在使用的其他库处理事件绑定,您可以在该库中执行相同的操作。由于您没有说明其他库是什么,这是一个原生解决方案:

示例: http://jsfiddle.net/patrick_dw/wWkJR/1/

window.onload = function() {

    // For clicks inside the element
    document.getElementById('myElement').onclick = function(e) {
            // Make sure the event doesn't bubble from your element
        if (e) { e.stopPropagation(); } 
        else { window.event.cancelBubble = true; }
            // Place the code for this element here
        alert('this was a click inside');
    };

    // For clicks elsewhere on the page
    document.onclick = function() {
        alert('this was a click outside');
    };
};

答案 1 :(得分:3)

如果$冲突是您唯一的阻挠,可以采取以下措施: http://docs.jquery.com/Using_jQuery_with_Other_Libraries

答案 2 :(得分:0)

我还在这里添加了阻止事件冒泡的代码。找到quircksmode.org

 function doSomething(e) {
    if (!e) var e = window.event
    // handle event
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
 }