在布尔属性JQuery之间切换

时间:2016-03-29 02:34:41

标签: javascript jquery events click toggle

我有一个事件监听器,我试图在一个类(正在工作)和一个数据选择属性true / false(不是)之间切换。我将div class =“dice”的数据选择属性默认设置为false。

game.selection = function() {
  $(".dice").on("click", function() {
    $(this).toggle(function () {
      $(this).attr('data-selection', true);
    });
    $(this).toggleClass("active");
  }); 
};

3 个答案:

答案 0 :(得分:1)

替换:

$(this).toggle(function () {
  $(this).attr('data-selection', true);
});

by:

$(this).attr('data-selection', ($(this).attr('data-selection') == "false" ? true : false));

答案 1 :(得分:0)

最好使用data()函数代替attr()。您也可以将代码缩减到此。

$(this).data('selection', ! $(this).data('selection'));

答案 2 :(得分:0)

当您将两个参数传递给.attr(attributeName,value)时,第二个参数将设置该值。您可以编写自定义扩展名,类似于toggleClass来有条件地添加或.removeAttr(),如下所示:

(function($) {
    $.fn.toggleAttr = function(attributeName, state) {
        return this.each(function() {
           if (state) {
             $(this).attr(attributeName,"")
           } else {
             $(this).removeAttr(attributeName)
           }
        });
    };
}(jQuery));

然后这样使用:

$(".class").toggleAttr("boolAt", false);