1

Firefox と IE では正しく動作する Java スクリプトを持っていますが、Chrome では動作しません。ボタンをクリックすると、テーブルが表示されます。クロムを使用してクリックすると、テーブルが読み込まれますが、スクロールが正しく機能しないため、テーブル全体が表示されません。これは私のスクリプトです:

function toggle_it(itemID) {
    if ((document.getElementById(itemID).style.display == 'none'))
    {
        document.getElementById(itemID).style.display = 'inline';
    } else {
        document.getElementById(itemID).style.display = 'none';
    }
}

<tr class="query-box">
    <td width="30%">&nbsp;</td>
    <td><p align=right><a href="#" onClick="toggle_it('mytable id')"><img border="0" 
                                                                          src="mypicbutton.gif">&nbsp;More...</a>&nbsp;</p></td>
</tr> 
4

2 に答える 2

3

displayテーブルを に設定していますinlineが、それはテーブルの通常の動作ではありませんdisplay。正常ですtable。ただし、toggle_it任意の種類の要素で作業を行うには、 に設定します。これにより''、 a をまったく設定していないかのように動作し、要素の種類に関係なくdisplayデフォルトに戻りますdisplay

function toggleIt(id) {
    var element = document.getElementById(id);
    if(element.style.display === 'none') {
        element.style.display = '';
    }else{
        element.style.display = 'none';
    }
}

ご覧のとおり、他の方法でもコードを少しクリーンアップしました。

于 2013-06-03T05:39:02.187 に答える
0

問題は、Chrome から返される値にあると思われstyle.displayます。次のことを試してください。

function toggleIt (id) {
  var el = document.getElementById (id);
  el.style.display = el.style.display == 'none' ? '' : 'none';
}

このコードとの同等性をテストすることによりnone、の初期値に関係なく機能するはずですstyle.display

于 2013-06-03T07:09:34.543 に答える