0

効果を繰り返さずにWordPressループ内でjqueryを使用するにはどうすればよいですか

<div class="post">
       <?php if ( have_posts() ) : 
       while ( have_posts() ) : the_post(); ?>
           <a class="post_image"  href="<?php the_permalink(); ?>" >
               <img  class="post_image_home"  src='<?php $thumb = get_post_custom_values('post_thumb'); echo $thumb[0]?>'   alt="postimg" />
           </a><!--post_image-->
       <?php endwhile; endif; ?></div><!--post-->

jquery:

    $j=jQuery.noConflict();
   $j('document').ready(function() {
      $j('.post').hover(function() {
             $j('.post_image').stop().animate({"margin-bottom":"10px",},"fast");
             },function(){
             $j('.post_image').stop().animate({"margin-bottom":"0px",},"fast");
      });            });
4

1 に答える 1

0

これをJSファイルに追加できませんか?おそらく、PHP ファイル内に JS を配置するよりも優れているでしょう。そうすると、PHP がループを通過するたびに JS が実行されなくなります。

PHP ファイル内でそれを行う必要がある場合は、ループが開始する前にグローバル JS 変数を作成し、独自の JS/jQuery を実行する前にそれを確認することができます。ループ内の JS 内で、そのグローバル変数を変更して、再度実行されないようにします。

==編集==

テーマに個別の JS ファイルを含めるコードの例を次に示します。

これは functions.php にあります:

add_action('wp_enqueue_scripts', 'front_end_js_files');
function front_end_js_files(){
    // shouldn't be needed, but to be safe
    wp_enqueue_script('jquery');
    // this is looking in the same dir as your functions.php
    wp_enqueue_script('my_own_file', get_bloginfo('template_url') . 'my_own_file.js');
}

そして、my_own_file.js に jQuery を貼り付けます。JS がすべてのページに含まれるようになったため、jQuery セレクターをもう少し具体的にしたい場合があることに注意してください。または、スクリプトをエンキューする前に、PHP でカスタム ページ検出を追加します。

于 2013-05-09T14:21:20.660 に答える