2010-12-01 3 views
1

Я хотел бы реализовать решение, как этотОбработка кликов за пределами элемента без JQuery

How do I detect a click outside an element?

но я использую другую библиотеку JavaScript с $() функция уже определена

Есть предложения?

+0

Что такое другая библиотека? Почему бы вам просто не использовать это или не библиотечное решение. Я бы не загружал другую библиотеку только для одной функции. – user113716 2010-12-01 02:40:23

+0

@patrick. Да, я загружаю jquery только для запуска функции «внешнего щелчка». Я не нашел никакого автономного кода в течение 20 минут с поисковой системы. На больших библиотечных решениях. – Dan 2010-12-01 21:04:34

ответ

4

Это легко сделать. Было бы стыдно загружать библиотеку 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'); 
    }; 
}; 
0

Я также добавить сюда код, который останавливает событие бурлит. Найдено по quircksmode.org

function doSomething(e) { 
    if (!e) var e = window.event 
    // handle event 
    e.cancelBubble = true; 
    if (e.stopPropagation) e.stopPropagation(); 
} 
Смежные вопросы