2017-10-12 20 views
1

カスタムワードプレステーマでajaxとjqueryを使用してライブ検索を作成しようとしています。 .click()関数を使用すると、目的の出力が表示されますが、.keyupまたはon( 'input'、function(){})を使用すると何も表示されません。ワードプレスライブ検索結果が表示されない

jQueryのコード

var searchRequest = null; 
      var minlength = 3; 

      $(".search-submit").on('input',function(e){ 
       e.preventDefault(); 
       var st=$(".search-field").val(); 

       if (st.length >= minlength) 
       { 
        if (searchRequest != null) 
        searchRequest.abort(); 
        searchRequest=$.ajax({ 
         type:"POST", 
         url: "./wp-admin/admin-ajax.php", 
         data: { 
          action:'wpa56343_search', 
          search_string:st 
          }, 
         success:function(data){ 
          $('.srch-result').append(data); 
         } 
        }); 
       } 

      }); 

function.php

add_action('wp_ajax_nopriv_wpa56343_search', 'wpa56343_search'); 
add_action('wp_ajax_wpa56343_search', 'wpa56343_search'); 
function wpa56343_search() 
{ 
    global $wp_query; 
    $search = $_POST['search_string']; 
    $args = array(
     's' => $search, 
     'posts_per_page' => 5 
    ); 
    $query = new WP_Query($args); 

    if ($query->have_posts()) : 
     while ($query->have_posts()) : 

    $query->the_post(); 
    get_template_part('template-parts/ajax-search-format', get_post_format()); 

    endwhile; 
    endif; 
    wp_reset_postdata(); 
} 

答えて

1

のPHPコードをHTMLの構造があまりにも提示してください。 私は間違った要素でトリガーしようとしていると思います。おそらく$( "。search-submit")は入力フィールドではありません。

試してみてください。

$(".search-field").on('input',function(e){ 
//** YOUR CODE **/ 
}); 
+0

はそれを得ました。それは愚かな間違いでした。手伝ってくれてありがとう –

関連する問題