在浏览器上按“返回”后,Javascript切换复选框不再可见

时间:2012-07-09 04:55:15

标签: javascript jquery checkbox refresh toggle

我遇到了复选框问题。我有一系列照片。每张照片都有一个复选框。如果选中了照片复选框,则使用.show()显示与照片关联的div。

工作正常,我可以提交表格。但是,如果我在浏览器上按“返回”以返回到照片集,则仍会选中复选框,但与其关联的div不再可见。

我需要做些什么来确保检查过的照片即使在“返回”页面时仍然有可见的div?

$(document).ready(function () {

$(':checkbox').change(function() {
  var dataID = $(this).attr("id");
  if($(this).is(':checked')) {
    $("#content"+dataID).show();
  }
  else {
    $("#content"+dataID).hide();
  }
});  

});

,形式是这样的:

<form>
<input name="box1" id="box1" type="checkbox" />
<input name="box2" id="box2" type="checkbox" />
<input name="box3" id="box3" type="checkbox" />
...
</form>

2 个答案:

答案 0 :(得分:3)

尝试在页面加载时显示已检查div的图像,例如:

$(document).ready(function () {

$(':checkbox').change(function() {
  // ... your code ...
});  

$(':checkbox').each(function() {
  var dataID = $(this).attr("id");
  if($(this).is(':checked')) {
    $("#content"+dataID).show();
  }
  else {
    $("#content"+dataID).hide();
  }
}); 

});

清洁版

$(document).ready(function () {
    $(':checkbox').change(function() { checkImage($(this)); });
    $(':checkbox').each(function() { checkImage($(this)); });
});
function checkImage(_checkBox) {
    var dataID = _checkBox.attr("id");
    if(_checkBox.is(':checked')) {
        $("#content"+dataID).show();
    }
    else {
        $("#content"+dataID).hide();
    }
}

答案 1 :(得分:0)

做这样的事情:

$(document).ready(function() {    
    $(':checkbox').change(function() {
        ToggleContent($(this));
    });

    $(':checkbox').each(function() {
        ToggleContent($(this));
    });

    function ToggleContent(chkbox) {
        var dataID = chkbox.attr("id");
        if (chkbox.is(':checked')) {
            $("#content" + dataID).show();
        }
        else {
            $("#content" + dataID).hide();
        }
    }
});​