0
<script type="text/javascript">
    function unhide(divID) {
        var item = document.getElementById(divID);
        if (item) {
            item.className=(item.className=='hidden')?'unhidden':'hidden';
        }
    }
</script>

このコードの何が問題なのかを理解しようとしています。IE を除くすべてのブラウザの非表示/非表示を切り替えます。直販サイトはhttp://lilacparadise.x10.mx/comics/です。私は友人を助けていますが、JavaScript の経験はほとんどありません。このコードを修正するために誰かが私を正しい方向に向けることができますか?

4

3 に答える 3

0

classNameIEでは正しく動作しない場合があります。これを試して、機能するかどうか教えていただけますか?

<script type="text/javascript">
    function unhide(divID) {
        var item = document.getElementById(divID);
        if (item) {
           if(item.getAttribute('class')=='hidden'){
               item.setAttribute('className', "unhidden") || item.setAttribute('class', "unhidden");
           }else{
               item.setAttribute('className', "hidden") || item.setAttribute('class', "hidden");
           }

        }
    }
</script>
于 2012-09-23T04:51:08.563 に答える
0

申し訳ありませんが、コンピューターに問題が発生したため、再起動する必要がありました。

まず、ページ自体にアクセスできる場合は、次の行を削除します

<script type="text/javascript" src="jquery-1.3.1.js"></script>

そしてそれを次のように置き換えます:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>

そのバージョンの jQuery は 2009 年 1 月にリリースされました。以下$.fadeToggle()で使用する方法は、1.4.4 で導入されました。

以下で私が何をしたかを理解できるはずです。ご不明な点がございましたら、お知らせください。ドラッグアンドドロップではありません。以下の fiddle デモにも CSS がありますが、デモに関連する部分のみを含めました。

$(function load(){
    var $my = $('#my'),
        $comment = $my.find('.comment'),
        $siblings = $my.find('.siblings');

    $my.click(function toggle(){
        $comment.text($siblings.not(':hidden').text());

        $siblings.toggleClass('green').fadeToggle();
    });
});​

http://jsfiddle.net/userdude/ULDKg/

これは、動作している CSS とマークアップです。

.siblings.hidden {
    display: none;
}
.siblings.green {
    background: green;
}

<div id="my">
    <div class="comment">Click for the comment...</div>
    <div class="siblings green">I don't know...</div>
    <div class="siblings hidden">What is it?</div>
</div>​

Firefox、Chrome、および IE 7-9 でテストしましたが、問題なく動作します。ただし、少なくとも v1.4.4 以降が必要です。

また、これは の短縮形を$(document).ready()使用していることにも注意してください。これは、ページが解析され、DOM が (全体として) アクセスできるようになるまで待機することを意味します。代わりに使用できますが$(window).load()、動作しますが、ここに表示されているものは、既に行われたことを模倣しています (これは問題ありません)。少なくともページが解析されるまで待つ必要があることに注意してください。または、コードが含まれている場所でアクセスしている要素を追跡する必要があるラッパーメソッドのいずれかが必要です。

于 2012-09-22T07:57:11.700 に答える
0

私はあなたの質問について 100% 確信が持てません。関数の代わりに、jquery でトグルを使用することをお勧めします。残りの jquery が処理します。

css部分。

.hidden
{
display:none
}

.visi
{
display:block
}

jquery部分。

$("#divid").click(function () {
      $(this).toggleClass("hidden");
    });
})

これが役立つことを願っています

于 2012-09-22T06:25:44.657 に答える