Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jQuery object в xpath. Глобальные события (https://javascript.ru/forum/jquery/12697-jquery-object-v-xpath-globalnye-sobytiya.html)

solarix 29.10.2010 16:16

jQuery object в xpath. Глобальные события
 
Привет.
недавно перешёл на jQuery, поэтому извиняюсь за ламерский уровень вопросов (их собственно 2), однако, сам я ничего нагуглить, к сожалению, не смог.

1. подскажите плагин к jQuery позволяющий по объекту jQuery(или по самому элементу DOM) построить полное выражение xpath к данной ноде. Про Base xpath знаю, но он предназначен для обратной задачи (по xpath получить ноду, то есть как компенсация вырезания xpath селекторов из jquery 1.2, как я понял). Разумеется, вариант написать самому приветствуется, но только если нет что-ли стандартного плагина, дабы не изобретать велосипеды. Кроме того, мне нужно построение правильного (со всеми атрибутами и т.д.) xpath выражения в соотв. со стандартом W3C, поэтому, хотелось бы воспользоваться уже проверенным решением, если таковое имеется.

2. Как средствами jQuery вешаются глобальные перехватчики каких-либо событий для всех элементов?
То есть, нужно перехватывать, например все события click в одном методе, вне зависимости от того, какому элементу предназначается это событие.

Спасибо.

Kolyaj 29.10.2010 16:40

1. Всё им плагины подавай.
function getXPath(el) {
        var xpath = '/' + el.tagName.toLowerCase(), number = 1;
        if (el.parentNode && el.parentNode != document) {
            var prev = el.previousSibling;
            while (prev) {
                if (prev.tagName == el.tagName) {
                    number++;
                }
                prev = prev.previousSibling;
            }
            if (number > 1) {
                xpath += '[' + number + ']';
            }
            xpath = getXPath(el.parentNode) + xpath;
        }
        return xpath;
    }


2. На document вешается событие.


Часовой пояс GMT +3, время: 10:35.