我有这个代码并且它工作正常,但问题是当您再次单击它时复选框不会被删除,它只会在单击span.removePortfolio时被删除。谢谢!
<input type="checkbox" name="portfolio"/>
<div>
Has Portfolio <span class="removePortfolio">X</span>
</div>
$("input[name=portfolio]").change(function() {
loadResults();
checkPortStatus();
});
$('span.removePortfolio').live("click", function() {
$("input[name=portfolio]").removeAttr("checked");
$('#portfolioRemove').hide();
});
var portChecked = false;
function checkPortStatus() {
if((portChecked) == true) {
$("input[name=portfolio]").removeAttr("checked");
}
}
function loadResults() {
if($("input[name=portfolio]").attr("checked", "checked")) {
portChecked = true;
}
}
我只需要在用户点击它时检查复选框,再次点击它时取消选中,如果已选中并且用户点击了span.removePortfolio,则取消选中。
答案 0 :(得分:0)
在元素失去焦点之前,Internet Explorer不会触发复选框的“更改”事件。改为使用“点击”。
此外,像这样操纵“已检查”属性并不是一个好主意。使用new(自1.6)“。prop()”方法:
$('input.whatever').prop('checked', true); // make the element be checked
$('input.whatever').prop('checked', false); // make it be un-checked
并且执行此操作可能更快(如果jQuery选择器只有一个复选框):
$('input.whatever')[0].checked = false; // or true
编辑,您编写的代码似乎想要在单击时立即关闭复选框: