【问题标题】:jquery making a checkboxjQuery制作一个复选框
【发布时间】:2014-05-03 01:59:12
【问题描述】:

我正在尝试通过创建一个带有 id(选中)和类(未选中)的 div 来创建一个复选框;

如果点击了这个 div,我会为它创建另一个类(选中)。

然后,我创建了一个输入类型复选框以使用选中的属性来更改我的 div 类的值 ('my input').is(':checked') status(true 或 false) .但问题是它在第 3 次点击时有效,在第 4 次点击时没有任何反应。

我的 html 代码是一个 div,第一次检查为 id 而未检查为一个类。 我对已选中和未选中的定义是关于背景,其中一个图像未选中,另一个已选中

js:

$(document).ready(function() {

  $('#check').click(function(){

    var isChecked = $('input[name=it]').is(':checked');

    if(isChecked){
    $( "#check" ).removeClass( "checked" ).addClass( "unchecked" );
     $('input[name=it]').attr('checked', false);

    }
    else{
          $( "#check" ).removeClass( "unchecked" ).addClass( "checked" );
      $('input[name=it]').attr('checked', true);
      }
  });
});

【问题讨论】:

  • 只是好奇,正常的<input type="checkbox" />有什么问题?
  • 使用.prop而不是.attr,它会起作用。
  • .prop 真的很有效,谢谢

标签: jquery html css


【解决方案1】:

无需input[type=checkbox] 设置状态。你可以和一个班级一起工作,它会完成这项工作。使用 Jquery .hasClass() 选择器而不是设置属性。这是一个示例:

HTML:

<div id="check"></div>

JS:

$("#check").click(function() {
if($(this).hasClass("checked")) {
        $(this).removeClass("checked");
    }
    else {
        $(this).addClass("checked");
    }
});

CSS:

#check
{
    width: 10px;
    height: 10px;
    background:blue;
}

#check.checked
{
    background: red;
}

JsFiddle:http://jsfiddle.net/dZfGk/

【讨论】:

  • 谢谢,但如果我有很多 php 复选框,具体取决于我的数据库元素(我的 id 将类似于 id="check$var)并且 var 从 0 变为我的数量元素如何为他们所有工作?
  • 然后,代替 id,给 div 一个通用类,例如“复选框”。然后将 $("#check").click() 选择器更改为 $(".checkbox").click()。不用担心,因为它不会干扰“checked”类。
猜你喜欢
  • 1970-01-01
  • 2019-03-03
  • 2013-02-21
  • 2018-12-04
  • 1970-01-01
  • 2021-04-04
  • 2012-05-08
  • 1970-01-01
  • 2020-02-26
相关资源
最近更新 更多