Использование JQuery для редактирования атрибутов данных на определенных элементах DOM

0

Я помещал предупреждения, потому что изменения не показывались, когда я проверял элемент. Однако, когда я нажимаю на объект, первый раз он вызывает предупреждение "data now false", как будто я уже щелкнул его один раз.

HTML:

<li class="media-thumb" data-select="false"><img src="IMG HERE"></li>

Javascript:

 $(document).ready(function() {


    $(".media-thumb").click(function() {
        if($(this).data("select") === "false") 
            {
                alert("data is now true")
                $(this).data("select", "true");


            }
        else
            {
                alert("data is now false")
                $(this).data("select", "false");

            }
    });

});
Теги:
dom

1 ответ

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

Атрибут data-select возвращается как boolean false (для jQuery docs: " Производится каждая попытка преобразовать строку в значение JavaScript"), а не строку.

Таким образом, вы можете написать:

$(".media-thumb").click(function() {
    if(! $(this).data("select")) 
        {
            alert("data is now true")
            $(this).data("select", true);
        }
    else
        {
            alert("data is now false")
            $(this).data("select", false);
        }
});

Пример CodePen: http://codepen.io/paulroub/pen/Bnvub

Ещё вопросы

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