【问题标题】:This JQuery snip doesn't work in Firefox此 JQuery 片段在 Firefox 中不起作用
【发布时间】:2015-07-20 07:09:58
【问题描述】:

我不知道为什么,但下面的代码在 Firefox 中不起作用。它在 Chrome 中非常完美。

// Buttons marker
$( "#second button" ).click(function() {
    $( this ).toggleClass('selected');
    $( this ).toggleClass('unselected');
    $( this ).toggleClass('btn-warning');
    $( this ).toggleClass('btn-default');
});

// Ads switcher
$( "#second button" ).click(function() {
    var category = $( this ).attr( "name");
    $( ".ad[data-category="+category+"]" ).toggle( "slow" );
});

// Hide all categories but newmotos when load website
$( document ).ready(function() {
    $( ".ad[data-category=usedmotos" ).hide();
    $( ".ad[data-category=spares" ).hide();
    $( ".ad[data-category=accessories" ).hide();
});

有什么建议吗?我认为 JQuery 是多平台的:/

编辑:代码应该使用选定的data-category 隐藏一些 div,并通过顶部的一些按钮提供显示它们的能力。 我在同一个网页中使用其他 JS 代码并且这些代码正在工作,我认为这很重要,因为它不会使所有 Javascript 崩溃。 Firebug 什么也没说 :(

编辑 2:添加我的 html。代码只是body的主要部分,其他的就不用了。

 <div id="main" role="main">

            <!-- Section #1 / Cover -->
            <section id="first" class="story" data-speed="8" data-type="background" data-offSetY="-432">        
                <article>
                    <h2>Tienda</h2>
                </article>
            </section>

            <!-- Section #2 / Keycloud -->
            <section id="second" class="point heads">
                <article>
                    <div class="text">
                        <h5>Nube de palabras. Aquí van las palabras, selecciónalas. Y tal y eso y se marcarán, ya tu sabeh.</h5>
                        <h6>Básicamente es cómo funciona este sistema para ver tus peaso motos.</h6>
                    </div>
                    <div class="btn-group-vertical">
                        <div><span>CATEGOR&Iacute;AS:</span></div>
                         <button type="button" class="selected btn btn-warning" name="newmotos">Motos nuevas</button>
                         <button type="button" class="selected btn btn-warning" name="usedmotos">Motos de ocasión</button>
                         <button type="button" class="selected btn btn-warning" name="spares">Recambios</button>
                         <button type="button" class="selected btn btn-warning" name="accessories">Accesorios</button>
                    </div>

                </article>
            </section>

            <!-- Section #3 / Bulletin -->
            <section id="third" class="point heads">
                <h4 class="line-divider">ANUNCIOS</h4>
                <article>

                    <div class="ad" data-category="newmotos">
                        <a href="images/ads/ad01/1.jpg" rel="lightbox-ad01"><img src="images/ads/ad01/1.jpg" /></a>
                        <a href="images/ads/ad01/2.jpg" rel="lightbox-ad01"></a>
                        <a href="images/ads/ad01/3.jpg" rel="lightbox-ad01"></a>
                        <a href="images/ads/ad01/4.jpg" rel="lightbox-ad01"></a>
                        <a href="images/ads/ad01/5.jpg" rel="lightbox-ad01"></a>
                        <a href="images/ads/ad01/6.jpg" rel="lightbox-ad01"></a>

                        <div>
                            <h6>Piaggio Liberty 49cc</h6>
                            <p>Se vende motor en muy buen estado, procendete de un golpe tambien todo el despiece de esta moto y el de una 49! saludos! motores desde 250 euros! </p>
                            <fieldset>
                                <span class="label label-success">250€</span>
                                <span class="label label-default">49cc</span>
                                <span class="label label-info">5.000km</span>
                                <span class="label label-warning">Blanca</span>
                            </fieldset>
                        </div>
                    </div>

                    <div class="ad" data-category="usedmotos">
                        <img src="images/ads/aprilia.jpg" />
                        <div>
                            <h6>Aprilia RS 49cc</h6>
                            <p>Vendo moto varata de serie solo pasarle la itv y yasta 550€ negociables interesados Atiendo wasap.. Color negro  </p>
                            <fieldset>
                                <span class="label label-info">550€</span>
                                <span class="label label-info">49cc</span>
                                <span class="label label-default">15.000km</span>
                                <span class="label label-default">Negra</span>
                            </fieldset>
                        </div>
                    </div>

                    <div class="ad" data-category="spares">
                        <img src="images/ads/puente.jpg" />
                        <div>
                            <h6>Puente culata Kawasaki 450 </h6>
                            <p>Vendo puentes de los arboles de lebas de culata de KAWASAKI KXF valido para KXF 450 del 2006 al 2008 </p>
                            <fieldset>
                                <span class="label label-default">150€</span>
                                <span class="label label-default">Modelo 450</span>
                                <span class="label label-default">2006</span>
                            </fieldset>
                        </div>
                    </div>

                </article>
            </section>

编辑 3:网络没有加载代码所在的文件“ads-controller.js”。下面的代码是我插入 JS 文件的方式。

    </div> <!-- // End of #main -->      

    <!-- Our Javascript, starting with jQuery -->
    <script src='js/libs/jquery-1.6.1.min.js'></script>
    <script src="js/libs/slimbox/slimbox2.js"></script>
    <script src="js/ads-controller.js"></script>
    <script src="js/scroller.js"></script>
    <script src="js/parallax.js"></script>

已解决:这是扩展程序“广告拦截器”。因为文件名中的“广告”。我刚刚重命名为“controller.js”并且运行良好。谢谢大家!

【问题讨论】:

  • 请提供一个 jsfiddle.net ,什么不起作用?什么都行不通或只是一些事情?
  • 您需要提供整个页面的 javascript 代码,很可能不相关的代码会导致错误并影响下游的其他代码。 Chrome 在忽略编码错误方面做得非常“好”,而其他浏览器则没有。
  • 你是对的,但是 jsfiddle 这是一个坏主意。这是一个与 PHP 一起工作的巨大代码,而小提琴无助于更好地解释它。我更新了 OC ;) 谢谢
  • 脚本是如何包含在页面中的?为什么安装点击处理程序不是document.ready 处理程序的一部分?
  • 我发现了新的有趣信息。网络没有使用此代码加载文件“ads-controller.js”。

标签: javascript jquery firefox browser parallax.js


【解决方案1】:

为了让你的代码更干,链接和使用 CSS 选择器:

// Buttons marker
$( "#second button" ).click(function() {
    $( this )
         .toggleClass('selected')
         .toggleClass('unselected')
         .toggleClass('btn-warning')
         .toggleClass('btn-defualt');
});

// Ads switcher
$( "#second button" ).click(function() {
    var category = $( this ).attr( "name");
    $( ".ad[data-category="+category+"]" ).toggle( "slow" );
});

// Hide all categories but newmotos when load website
$( document ).ready(function() {
    $( ".ad[data-category='usedmotos'], .ad[data-category='spares'], .ad[data-category='accessories']" ).hide();
});

Here's a fiddle.

【讨论】:

    【解决方案2】:

    在这里更正你的代码:

    之前:

    $( ".ad[data-category=usedmotos" ).hide();
    $( ".ad[data-category=spares" ).hide();
    $( ".ad[data-category=accessories" ).hide();
    

    之后:

    $( ".ad[data-category='usedmotos']" ).hide();
    $( ".ad[data-category='spares']" ).hide();
    $( ".ad[data-category='accessories']" ).hide();
    

    还可以将您的代码以following 的形式包含在DOM 中:

    // Hide all categories but newmotos when load website
    $( document ).ready(function() {
        $( ".ad[data-category='usedmotos']" ).hide();
        $( ".ad[data-category='spares']" ).hide();
        $( ".ad[data-category='accessories']" ).hide();
    
        // Buttons marker
        $( "#second button" ).click(function() {
            $( this ).toggleClass('selected');
            $( this ).toggleClass('unselected');
            $( this ).toggleClass('btn-warning');
            $( this ).toggleClass('btn-default');
        });
    
        // Ads switcher
        $( "#second button" ).click(function() {
            var category = $( this ).attr( "name");
            $( ".ad[data-category="+category+"]" ).toggle( "slow" );
        });
    
    });
    

    【讨论】:

    • 把你的 HTML 代码放在这里。没有它,这将是很多猜测工作。
    • 我刚刚添加了html
    • @Phoenix 我正要制作一个和你一模一样的东西。我的工作在 Firefox 26 上。我认为还有其他东西让 Bursos 搞砸了。
    • @Phoenix 仍然无法正常工作 :( 我很确定不加载文件是错误的,我猜它的内容是否会影响到这一点。网络剂量' t 加载“ads-controller.js”,我不知道为什么
    • 尝试在你的代码中使用debugger;并在你的环境中调试
    【解决方案3】:

    是 AdBlock 扩展程序捕获了 ad 术语。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多