Jquery: переключить ближайший родительский элемент с помощью .on («click»)? [Дубликат]

0

Данный HTML-код, такой как

<div class="tpl grey">Hosts:
    <p>Hi !</p>
    <p>How are you ?</p>
    <p>What ever.</p>
    <a href="./~">An other child & element type !</a>
</div>

Как сделать так, чтобы щелчок на дочернем элементе переключил class="grey" из ближайшего родительского элемента .tpl?


Не удалось выполнить следующий код:

//Action to do on parent $(".tpl") 
var switch1 = function () {
    $(this).closest(".tpl").toggleClass("blue grey");
}

// On() click event
$(document).ready(function() {
        $(".tpl").on("click", "p", switch1() );
});

Сценарий: http://jsfiddle.net/MRcCy/1

  • 0
    $(".tpl").on("click", "*", switch1() ) должен быть лучше, чтобы он работал на всех дочерних элементах (*)
  • 1
    Изменить $(".tpl").on("click", "p", switch1() ); на $(".tpl").on("click", "p", switch1 ); jsfiddle.net/j08691/MRcCy/2
Показать ещё 2 комментария
Теги:
jquery-traversing

2 ответа

1
Лучший ответ

Если вы просто хотите переключить ближайший.tpl (хотя я его вижу только), попробуйте это

$(document).ready(function() { $(".tpl p").click(function(){ $(this).closest('.tpl').toggleClass('grey'); }); });

1

Проверьте эту скрипку

$(document).ready(function() {
    $(".tpl").click(function(){
        $('.tpl').toggleClass('grey blue');
    });
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню