-5

これは非常に単純なはずです。最初のコードブロックは機能しますが、それを関数でラップして関数を呼び出そうとすると、機能しません。

これは動作します:

$(document).ready(function() {

        $("#groups-image").hide();
        $("#quiz-image").hide();
        $("#members-image").hide();     

});

これは機能しません:

$(document).ready(function() {

        function hideatstart() {

        $("#groups-image").hide();
        $("#quiz-image").hide();
        $("#members-image").hide();     
        }

        hideatstart();
});

更新:受け入れられた答えを見た後、私は動作するコードを取得することができました。これには、コード行の間にスペースを入れないことが含まれ、pタグを挿入できるようになります。ベストプラクティスは、JQueryを別のスクリプトに削除することです。これを実行します。次のコードが機能します。

$(document).ready(function() {
    function hideatstart(){
        $("#groups-image").hide();
        $("#quiz-image").hide();
        $("#members-image").hide();
        }
    hideatstart();
});
4

1 に答える 1

2

ライブサイトのHTMLを調べたところ、スニペットは次のように出力されていることがわかりました。

<div class="art-postcontent">
    <!-- article-content -->
    <!-- [snipped] -->
    <p><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script><br />
<script type="text/javascript">
    $(document).ready(function() {</p>
<p>         function hideatstart() {</p>
<p>         $("#groups-image").hide();
            $("#quiz-image").hide();
            $("#members-image").hide();     
            }</p>
<p>         hideatstart();
    });
</script></p>
    <!-- [snipped] -->
</div>

ご覧のとおり、WordPressのwpautopフィルターは段落内の行をラップしました。

スクリプトをどこかに挿入する必要がある場合は、WordPressの投稿やウィジェットにコードを貼り付けるのではなく、プラグインまたはテーマ関数を使用してスクリプトを挿入することをお勧めします。このような悪意のあるインジェクションを防ぐために、通常のWordPressコンテンツタイプはすべてエスケープされます。カスタム投稿タイプを使用しているようですがart、通常は同様の扱いを受けます。コンテンツがエスケープされないようにする方法はいくつかありますが、スクリプトコードを別の場所に移動することを真剣に検討する必要があります。

于 2012-06-16T22:24:14.313 に答える