Я помещал предупреждения, потому что изменения не показывались, когда я проверял элемент. Однако, когда я нажимаю на объект, первый раз он вызывает предупреждение "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");
}
});
});
Атрибут 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