JQuery - обрабатывать нажатия - PullRequest
1 голос
/ 04 октября 2009

У меня есть такая конструкция:

             <div id="slider"> 
               <div id="nav">
                    <div class="sliderPart">
                        <a href="#computers">
                            <strong>1</strong>
                        </a>
                    </div>
                    <div class="sliderPart">
                        <a href="#network">
                            <strong>2</strong>
                        </a>
                    </div>
                    <div class="sliderPart">
                        <a href="#web">
                            <strong>3</strong>
                        </a>
                    </div>
                    <div class="sliderPart">
                        <a href="#support">
                            <strong>4</strong>
                        </a>
                    </div>
               </div>
               <div id="slider-content">
                    <a href="#computers" id="slider-computers" class="slider-block">Test1</a>
                    <a href="#network" id="slider-network" class="slider-block">Test 2</a>
                    <a href="#web" id="slider-web" class="slider-block">Test 3</a>
                    <a href="#support" id="slider-support" class="slider-block">Test 4</a>
               </div>
            </div>

Теперь мне нужно обработать нажатие на ' nav ' и ' slider-content ' и получить кликнувший элемент href-attribute.

       $('#slider').click(function(){
            console.log( $(this) );
       });

Используя этот код, я получаю

[DIV # слайдера]

1 Ответ

3 голосов
/ 04 октября 2009

Используйте attr, чтобы получить или установить значения атрибутов элемента:

$('#slider a').click(function(){
    console.log( $(this).attr('href') );
});

Селектор #slider относится к элементу div, поэтому firebug выводит [div#slider]. Вы можете нацелить якоря в нем с помощью селектора предка :

Соответствует всем элементам-потомкам определяется "потомком" элементов указано "предком".

Что означает поместить элемент-потомок после предка, разделенный пробелом, как в примере выше - $('#slider a')

<ч />

FYI AS VER 1.6 .prop () введено. Подробнее

Разница между атрибутами и свойствами может быть важной в определенных ситуациях. До версии jQuery 1.6 метод .attr () иногда учитывал значения свойств при извлечении некоторых атрибутов, что могло вызвать противоречивое поведение. Начиная с jQuery 1.6, метод .prop () предоставляет способ явного получения значений свойств, в то время как .attr () извлекает атрибуты. Подробнее

Например, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked и defaultSelected должны быть получены и установлены с помощью метода .prop (). До jQuery 1.6 эти свойства можно было получить с помощью метода .attr (), но это не входило в сферу attr. Они не имеют соответствующих атрибутов и являются только свойствами. Подробнее

...