我有一个依赖的无线电组,通过点击输入#adio10,输入#radio16 .form-block-cms应该向下滑动。并没有问题。
问题是当我选择输入#radio16时。 form-block-cms向下滑动并立即恢复。如果未选择输入#radio16,我尝试使用cond语句,但它仍在执行此操作。
我怎么能绕过它?
if ($('input#radio10, input#radio16').is(':checked')) {
$('.rsform-block-cms').slideDown().addClass('additionalField')
}
else if ($('input#radio16').not(':checked')) {
$('.rsform-block-cms').slideUp();
};
答案 0 :(得分:5)
.not()
过滤元素(但仍会返回一个jQuery对象,因此它将是〜= true),而您需要的是!
和.is()
,如下所示:
!$('input#radio16').is(':checked')
或者更简单一点:
if ($('#radio10, #radio16').is(':checked')) {
$('.rsform-block-cms').slideDown().addClass('additionalField')
} else if (!$('#radio16')[0].checked) {
$('.rsform-block-cms').slideUp();
}
答案 1 :(得分:1)
您可能还想使用变量,这样就不会两次搜索相同的元素......
var radio10 = $("#radio10")[0] || {};
var radio16 = $("#radio16")[0] || {};
var $rsfrom = $("#.rsform-block-cms");
if ( radio10.checked && radio16.checked ) {
$rsform.slideDown().addClass("additionalField");
} else if ( !radio16.checked ) {
$rsform.slideUp();
}
这不仅具有更好的性能,而且更具可读性:)