Javascript jQuery代码在Firefox上不起作用
所以我得到一行左边的边距,然后把它加到另一行。它适用于Safari和Chrome。它也不会抛出任何错误 以下是jQuery代码: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
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上运行。。。只是这个因为某种原因不起作用。