Javascript 取消选中后,jQuery不会隐藏
我只在Firefox上使用jQuery代码时遇到了一个问题,它显示了一个复选框的html详细信息,在取消选中该复选框时,该复选框应该再次消失。代码是:Javascript 取消选中后,jQuery不会隐藏,javascript,jquery,Javascript,Jquery,我只在Firefox上使用jQuery代码时遇到了一个问题,它显示了一个复选框的html详细信息,在取消选中该复选框时,该复选框应该再次消失。代码是: $('#gepaeck').on('click', function() { showGepaeckwert($(this)); }); function showGepaeckwert(t) { status = $(t).prop('checked'); if (status) { $('.Gepaeck').show(
$('#gepaeck').on('click', function() {
showGepaeckwert($(this));
});
function showGepaeckwert(t) {
status = $(t).prop('checked');
if (status) {
$('.Gepaeck').show();
} else {
$('.Gepaeck').hide();
}
}
在Chrome上工作正常。在这种情况下,有人能给我提示或帮助吗
谢谢 如果gepaeck是复选框输入,则:
jQuery方法文档:
该方法的第二个版本接受布尔参数。如果这
参数为true,则显示匹配的元素;如果为假,则为
元素是隐藏的
问题是.prop'checked'返回的是字符串,而不是布尔值。有几种方法可以解决这个问题 与if中的字符串进行比较:
if (status == 'true') {
$('.Gepaeck').show();
}
根据字符串值将状态变量设置为布尔值:
status = $(t).prop('checked') == 'true' ? true : false;
就我个人而言,我更喜欢第二种方式。单击事件在更改事件之前触发,因此检查未更新
$('#gepaeck').on('change', showGepaeckwert).trigger('change');
function showGepaeckwert() {
$('.Gepaeck').toggle(this.checked);
}
这是因为您的状态不是布尔值而是字符串 要将字符串转换为Bolean,请使用以下条件
status = (status === 'true' || status === true) || false;
见工作示例:
函数showGepaeckwertt{
var状态=$t.prop“已检查”;
状态=状态=='true'| |状态===true | | false;
如果状态{
$'.Gepaeck'.show;
}否则{
$'.Gepaeck'。隐藏;
}
}
格派克先生{
填充:20px;
边框:1px实心;
}
选择我
把我藏起来
试试这个showGepaeckwertthis;不,它没有帮助。你能分享你的HTML吗?showGepaeckwert$这个;将此更改为showGepaeckwertthis;?您尝试过这个吗?在showGepaeckwert函数中使用这个而不是$this非常感谢,这很有帮助!
status = (status === 'true' || status === true) || false;