2013-07-25 162 views
0

我试图使用的脚本被设计为在用户位于页面的某个部分时隐藏按钮。问题是.hide()没有被解雇,我相信它与if语句有关,只是不太确定。jQuery和if语句和单选按钮

$(function() { 
    var sndReminderBtn = $('.sendreminderBtn'); 
    var resultSelection = $('.resultsSelector'); 



    if (resultSelection.is(':checked')) { 
     sndReminderBtn.hide(); 
     alert("Button is hidden"); 

    } else { 
     sndReminderBtn.show(); 
     alert("button is NOT hidden"); 
    } 
}); 
+0

<<用于在用户在页面的某个部分**时隐藏按钮** >>代码中没有这样的内容 –

+0

我猜你将需要在事件中触发此事件,而不是在页面加载时检查它 - 因为当前代码看起来绝对正确。要么是这样,要么你有一个元素类名称错误,或者多个元素被赋予相同的类。 –

+0

@roasted你是对的,ALOT在整个页面代码中继续进行,因为它是整个网站的一部分,这个网站是用一个MVC框架构建的,这个网站是从一些不同的类中提取的 – CTully12

回答

0

如果不处理程序附加到一个事件,它不会工作。此外,代码可以更短:

$(function() { 
    $('.resultsSelector').on('change', function() { 
     $('.sendreminderBtn').toggle($(this).is(":not(:checked)")); 
    }); 
}); 
+0

这个工作!很好,谢谢。我一直在尝试自学jQuery一段时间,所以仍然在学习in和out。欣赏它。 – CTully12

+0

没问题。一旦你习惯了它,你会发现事情会变得更容易。 :) – melancia

+0

如果您满意,请记住将此答案标记为解决方案。 – melancia

0

必须改变,如果requestSelection检查你verifyng方式

变化:

if(resultSelection.is(':checked')){ 

通过:

if(resultSelection.attr('checked')){ 

或者,如果你正在使用jQuery 1.6+

if(resultSelection.prop('checked')){ 
0

绑定时,页面加载,然后侦听器触发功能

$(function() { 
    $('.sendreminderBtn').click(showHide); 
}); 

function showHide(){ 
    var sndReminderBtn = $('.sendreminderBtn'); 
    var resultSelection = $('.resultsSelector'); 
    if (resultSelection.is(':checked')) { 
     sndReminderBtn.hide(); 
     alert("Button is hidden"); 

    } else { 
     sndReminderBtn.show(); 
     alert("button is NOT hidden"); 
    } 
}