我正在尝试在我的自定义WordPress主题上使用ajax和jquery创建实时搜索。如果我使用 .click() 函数,它会显示所需的输出,但是当使用 .keyup 或 on('input',function(){}) 时,它什么也不显示。
J查询代码
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);
}
});
}
});
函数的PHP代码.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();
}
也请显示您的 html 结构。我认为您正在尝试使用错误的元素触发。也许 $(".search-submit") 不是输入字段。
尝试:
$(".search-field").on('input',function(e){
//** YOUR CODE **/
});