Javascript jQuery代码在Firefox上不起作用

Javascript jQuery代码在Firefox上不起作用,javascript,jquery,firefox,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('mar

所以我得到一行左边的边距,然后把它加到另一行。它适用于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或其他)而不是“自动”在mainrow上设置了一个特定的边距,它会在加载时工作。但其吸引力在于通常从网格中获取居中行的左边距(因此“边距:0自动”)。

我想这可能是因为您的noConflict,因为我在启用noConflict时遇到了功能问题

它运行正常,没有冲突,请参见下面的示例:

$(函数(){
$(窗口)。打开('resize',resetMargin);
resetMargin();
});
函数resetMargin(){
var margleet=parseInt($('#mainrow').css('margin-left');
$('cnn slider').css('margin-left',marglight);
控制台日志(左侧);
}

测试
布拉布拉布拉赫
呜呜,呜呜,呜呜

经过一些研究,我发现这是一个Firefox bug,它没有从一个通过.css()访问其css的“自动”元素中获得余量。所以我使用了.offset().left来访问它,它现在可以工作了

现在看起来是这样的:

// 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);
});

请提供一份报告。当人们无法重现您的问题时,他们也会帮不上忙,因为您没有设置边距,通过css()获取边距可能不是您想要的。尝试通过getComputedStyle()查看:无。。。这很奇怪,因为如果我像你在Firefox中那样离开,它总是“0px”。所以,它是有效的,它似乎不读取主行边距。可能是因为它设置为“自动边距:0”?尽管如此,它在其他浏览器上仍然有效。。。另外,顺便说一句,noConflict中还有其他功能可以在Firefox上运行。。。只是这个因为某种原因不起作用。