2

これは一種のコードの要約バージョンです。実際のバージョンは長すぎて投稿できませんが、概念を表すにはこれで十分です。これを使用して、href="". 静的な html ページで適切に動作するように数日を費やした後、スクリプトを使用する予定の Wordpress ページでスクリプトが動作しません。スクリプトをヘッドまたはインラインで試してみましたが (どちらでもかまいません)、いずれにしても機能しません。Wordpress と特定のプラグインは Jquery を使用しているため、バージョンの不一致が原因で競合が発生する可能性があります。私は (まだ) JavaScript の専門家ではありませんが、猫の皮を剥ぐにはいくつかの方法があることは知っています。

<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {

    var divswitch = $('div.diagram_container a');

    divswitch.bind('click',function(event){
        var $anchor = $(this);
        var ids = divswitch.each(function(){
           $($(this).attr('href')).hide();   
        });
        $($anchor.attr('href')).show();
        event.preventDefault();
    });


});
</script>

<style>
.diagram {
    margin: 0;
    width: 100%;
}
.diagram_container {
    width: 100%;
}
</style>

    <div id="RH_RW_Div" class="diagram_container" style="float:left; display:block;">
        <div class="diagram_menu">
          <a class="checked" href="#RH_RW_Div"><span class="checkbox_label">Right Handed</span></a> 
          <a class="unchecked" href="#LH_RW_Div"><span class="checkbox_label">Left Handed</span></a>
        </div>
        <img class="diagram" src='images/RH_RW.gif' /><br />
    </div>

    <div id="LH_RW_Div" class="diagram_container" style="float:left; display:none;">
        <div class="diagram_menu">
          <a class="unchecked" href="#RH_RW_Div"><span class="checkbox_label">Right Handed</span></a> 
          <a class="checked" href="#LH_RW_Div"><span class="checkbox_label">Left Handed</span></a>
        </div>
        <img class="diagram" src='images/LH_RW.gif' /><br />
    </div>  
4

2 に答える 2

1

Wordpress はデフォルトでjQuery.noConflict()を使用します。$これは、変数を使用している他のライブラリと競合しないようにするためです。そのため、コンソールは関数ではないと言っています。

ただし、明らかに、jQuery変数は引き続き機能するため、それを使用し、変数を自分で関数に渡して、$の短縮版を有効にする必要がありjQueryます。

したがって、コードは次のようになります。

jQuery(document).ready(function($){

     // Your functions go here

});
于 2013-03-29T19:01:38.217 に答える
1

私の推測では、Wordpress のインストールまたはプラグインが既に jQuery を頭の中で読み込んでいると思います。そこに存在するかどうかを確認し、存在する場合は再度呼び出さないでください。

それでもうまくいかず、このサイトをオンラインにしている場合は、リンクを送ってください。見てみます。

jQuery を 2 回呼び出すと、多くの場合、問題が発生します。1.8.3 ( wp_register_scriptおよびwp_enqueue_script )が特に必要な場合は、jQuery をロードして Wordpress のバージョンをオーバーライドする適切な方法もありますが、まだそのルートをたどる必要はないと思います。

于 2013-03-29T18:44:49.677 に答える