通过jQuery设置di​​splay-property - 在Chrome中不起作用?

时间:2015-05-04 13:04:55

标签: javascript jquery html css google-chrome

我有以下问题。我有这个jQuery脚本:

$(document).ready(function () {
    $("thead.opening").click(function () {
        var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
        alert("INTO second function, chrome: " + is_chrome);
        $(this).next().css('width', '10000000 em');
        $(this).next().css('display', 'table-row-group');
        alert($(this).next().css('display'));
    })
});

当用户点击表格的thead(包含class="opening")时,此CSS设置为同一表格的tbody元素(由{{1}表示}):

$(this).next()

这适用于FireFox和Internet Explorer,但在Chrome中无效。

我已经获得了以下行为(正如您在前面的代码片段中看到的,我已经放了一些style="display: table-row-group; 来调试代码):

  1. alert()

  2. 然后按照我的预期设置CSS属性:

    INTO second function, chrome: true

    并执行代表我$(this).next().css('display', 'table-row-group'); 元素的CSS设置的第二个alert()时:

    tbody

    它会打印预期值:$(this).next().css('display', 'table-row-group'); 并且它已正确设置,因为我看到了警告弹出窗口,并在其下方正确呈现了我的页面

  3. 当我点击提示弹出窗口的确定按钮时,它会消失,我的table-row-group元素会出现一些可视化问题,特别是tbody元素设置了{{1}而不是tbody,这是我获得的style="display: block;"

  4. 似乎Chrome首先正确设置了style="display: table-row-group;"(因为我看到tbody元素位于第二个警告弹出窗口下的正确位置),然后在确定时自动将其设置为display: table-row-group;"单击此弹出窗口的按钮。

    为什么呢?我错过了什么?我该如何解决这个问题?

    由于

4 个答案:

答案 0 :(得分:2)

10000000 em

会导致css错误。

将其更改为10000000em

http://jsfiddle.net/Mephiztopheles/0nh72pg0/ 当您尝试此链接时,它是否也会删除表格显示? 任何其他可以删除样式属性的功能?
是否删除了样式属性?

答案 1 :(得分:1)

我认为Chrome没有任何理由重置您的风格;错误可能是代码中的其他地方。创建一个最小的示例,以确保没有第二个事件处理程序执行此意外重置。

接下来就是禁用插件。您可能在Chrome中安装了一个更改CSS的插件。

答案 2 :(得分:0)

这可能发生,因为警报在chrome的事件中更为重要。如果你试试这会怎么样?

$(document).ready(function () {
    $("thead.opening").click(function () {
        var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
        alert("INTO second function, chrome: " + is_chrome);
        $(this).next().css({
            width: '10000000em',
            display: 'table-row-group'
        });
        setTimeout( function() {
            console.log($(this).next().css('display'));
        });
    });
});

答案 3 :(得分:0)

是否有为您的显示属性定义的其他样式? 但如果它适用于firefox,它应该适用于chrome。

你可以尝试 -

$pdf->combineImages($elements);