【问题标题】:Hide / Display div based on checkbox click. Works in jsFiddle, but won't on my site. Any ideas?根据复选框单击隐藏/显示 div。在 jsFiddle 中工作,但不会在我的网站上。有任何想法吗?
【发布时间】:2013-09-16 18:57:31
【问题描述】:

根据复选框单击隐藏/显示 div。在 jsFiddle 中工作,但不会在我的网站上。有什么想法吗?

我想做的是有多种付款方式(CC、Paypal 等),并且根据您检查的方式,我将显示该方式的相关付款信息。

这里是相关的 jsFiddle 链接:

http://jsfiddle.net/mxRCz/88/

我的 JS 是:

$('#CCMethod').change(function(){
  if (this.checked) {
    $('#CCPay').fadeIn('slow');
  } else {
    $('#CCPay').fadeOut('slow');
  }                   
});

我的站点暂存区位于:https://rsatestamls.kaliocommerce.com:444/checkout.aspx

【问题讨论】:

  • 您的网站上的这行 $("#mainslider2").carouFredSel({ 有错误,我找不到元素 #mainslider2

标签: javascript jquery html css


【解决方案1】:

因为你的脚本

  $('#CCMethod').change(function(){
      if ($(this).is(':checked')) {
        $('#CCPay').fadeIn('slow');
      } else {
        $('#CCPay').fadeOut('slow');
      }                   
    });

在声明#CCMethod 之前运行。将其包装在 doc-ready 中:

$(function() {
    ('#CCMethod').change(function(){
      if ($(this).is(':checked')) {
        $('#CCPay').fadeIn('slow');
      } else {
        $('#CCPay').fadeOut('slow');
      }                   
    });
 });

【讨论】:

    【解决方案2】:

    我建议使用click 事件而不是更改,change 在旧 IE 中是错误的(jQuery 可能会处理这个错误,但无论如何这是一个很好的做法)。所以试试click 是否适合你。

    如果你不关心 IE:checked 伪选择器。此选项不需要 javascript。看这里:http://jsfiddle.net/y9cQD/(可以通过transition添加显示/隐藏动画)

    附:刚刚注意到 J Torres 的回答 - 可能是原因。

    【讨论】:

      【解决方案3】:

      换行:

      if (this.checked) {
      

      为此:

      if ($(this).is(':checked')) {
      

      要检查复选框是否被选中,您必须使用 ':checked' jQuery 选择器。

      【讨论】:

      • this.checked 是有效且更好的 imo
      • 嗯,刚试了一下,没有收到任何不同的结果。单击复选框时仍然不显示。一定是页面上的其他内容,但我不确定是什么 :( Chrome 的控制台没有向我报告任何错误。rsatestamls.kaliocommerce.com:444/checkout.aspx
      • 只是为了确认一下,您是否将代码添加到 $(document).ready 函数中?
      猜你喜欢
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 2016-09-04
      相关资源
      最近更新 更多