jQuery代码不适用于Firefox

时间:2016-09-25 23:04:40

标签: javascript jquery firefox

所以我在一行中留下了边距并将其添加到另一行。它适用于Safari和Chrome。它也不会抛出任何错误。

这里是jQuery代码:

var j = jQuery.noConflict();
j(document).ready(function($){

  // Slider margin left equal to grid on load
  var margLeft = $('#mainrow').css('margin-left');
  $('#cnn-slider').css('margin-left', margLeft);

  // Slider margin left equal to grid on resize window
  $(window).resize(function() {
    var margLeft = $('#mainrow').css('margin-left');
    $('#cnn-slider').css('margin-left', margLeft);
  });

});

HTML代码:

<div id="main" role="main">
    <article>
        <div class="entry-content">
            <div class="row" id="mainrow">
                <div class="medium-12 columns">
                    <h1><?php the_title(); ?></h1>
                    <div class="row main-content">
                        <div class="medium-6 columns">
                            <?php the_field('history_text'); ?>
                        </div>
                    </div>
                </div>
            </div>
            <div class="row" id="cnn-slider" style="max-width: 100%;">
                <div class="columns">
                    <div class="slider-container">
                    <div class="slider-shadow"></div>
                        <?php echo do_shortcode("[metaslider id=40]");?>
                    </div>

                </div>
            </div>
            <?php the_content(); ?>
        </div><!-- .entry-content -->
    </article>
</div>

编辑:我已经添加了HTML代码,因为有些用户说它还没有完成。整个事情应该就足够了。感谢。

编辑2:如果我通过css(例如100px或其他)设置了一个特定的保证金 - 而不是&#34; auto&#34;它适用于负载。但吸引力是以dinamycally方式从网格中获取居中行的左边距(所以&#34;边距:0自动&#34;)。

2 个答案:

答案 0 :(得分:2)

我想这可能是因为你的noConflict,因为我遇到了启用noConflict功能的问题。

没有noConflict就可以运行,请参阅下面的示例:

&#13;
&#13;
$(function() {
  $(window).on( 'resize', resetMargin );
  
  resetMargin();
});

function resetMargin() {
  var margLeft = parseInt( $('#mainrow').css('margin-left') );
  $('#cnn-slider').css('margin-left', margLeft);
  console.log( margLeft );
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="main" role="main">
    <article>
        <div class="entry-content">
            <div class="row" id="mainrow">
                <div class="medium-12 columns">
                    <h1>test</h1>
                    <div class="row main-content">
                        <div class="medium-6 columns">
                            blahblahblah
                        </div>
                    </div>
                </div>
            </div>
            <div class="row" id="cnn-slider" style="max-width: 100%;">
                <div class="columns">
                    <div class="slider-container">
                    <div class="slider-shadow"></div>
                        woohawoohawooha
                    </div>

                </div>
            </div>
            <?php the_content(); ?>
        </div><!-- .entry-content -->
    </article>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

经过一番研究后,我发现它是一个Firefox漏洞没有从&#34; auto&#34;元素通过.css()访问它的css。所以我已经使用.offset()。左来访问它,它现在可以正常工作。

现在看起来像这样:

// Slider margin left equal to grid on load
var margLeft = $('#mainrow').offset().left;
$('#cnn-slider').css('margin-left', margLeft);

// Slider margin left equal to grid on resize window
$(window).resize(function() {
    var margLeft = $('#mainrow').offset().left;
    $('#cnn-slider').css('margin-left', margLeft);
});