Обработка кликов за пределами элемента без jquery - PullRequest
3 голосов
/ 01 декабря 2010

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

Как обнаружить щелчок вне элемента?

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

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

Ответы [ 3 ]

6 голосов
/ 02 декабря 2010

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

Если конфликт $ является вашей единственной задержкой, есть способы обойти это: http://docs.jquery.com/Using_jQuery_with_Other_Libraries

0 голосов
/ 03 декабря 2010

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

 function doSomething(e) {
    if (!e) var e = window.event
    // handle event
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
 } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...