我有一个PHP文件,该文件基于WP_Query输出产品。
到目前为止一切正常!
但是现在我也想在输出中输出javascript 。而这是无法识别/加载的...对我来说,似乎javascript无法识别为javascript。如果我插入警报,则将被忽略。
...
if ( $posts_gf->have_posts() ) :
while ( $posts_gf->have_posts() ) : $posts_gf->the_post();
$response .= '
<script type="text/javascript">
alert("Hello! I am an alert box!");
</script>
<div class="item col-md-4">
Produkt
</div>
';
endwhile;
...
我想从functions.php中包含的js加载轮播。 如果我将轮播的相同代码直接粘贴到模板部分文件“ content-glasfaser.php”中,则可以正常工作。
这是轮播应该加载的文件摘录(所有js / css文件都已加载/存在于页眉和页脚中):
$products = self::$productDefinitions[$result['Standorttyp']];
$posts_gf = new WP_Query(array(
'post_type' => 'tarife',
'posts_per_page' => 6,
'post_status' => 'publish',
'post__in' => $products,
'orderby' => 'title',
'order' => 'ASC',
'tax_query' => array(
array(
'taxonomy' => 'tarif_kategorie',
'field' => 'slug',
'terms' => 'glasfaser',
),
),
));
$street = utf8_encode($result['Strasse']);
$houseNo = $result['Hausnummer'];
$postCode = $result['Plz'];
$city = $result['Ort'];
$response = '
<h3>inside return</h3>
<section class="regular slider">';
// Zeige die Glasfaser-Tarife
if ( $posts_gf->have_posts() ) :
while ( $posts_gf->have_posts() ) : $posts_gf->the_post();
$response .= '
<div class="item col-md-4">
Produkt
</div>
';
endwhile;
wp_reset_postdata();
else:
$response .= '';
endif;
return array('html' => $response);
}
}
编辑: 对于轮播,我已经在我的functions.php(wordpress)中插入了3个文件
wp_enqueue_style( 'xxx-slider', get_stylesheet_directory_uri() . '/css/slick.css', array(), '20170925' );
wp_enqueue_style( 'xxx-slidertheme', get_stylesheet_directory_uri() . '/css/slick-theme.css', array(), '20170925' );
...
wp_enqueue_script( 'xxx-sliderjs', get_template_directory_uri() . '/js/slick.min.js', array(), '20190218', true );
答案 0 :(得分:1)
我找到了解决方法:
How do I execute a javascript after Ajax load?
我已将其插入我的js
$( document ).ajaxComplete(function( event,request, settings ) {
// carouselcode
});
答案 1 :(得分:0)
如果这是您的全部代码,似乎您是将php的回复注入到已加载的html页面中了?
如果是这种情况,除非您明确调用它,否则JS将不会执行。 我将通过重新格式化JS来解决这个问题,以便您只剩下一个脚本,并在加载html后在该脚本中调用一个函数。
select * from table where tablename like '%admin%'
然后,您可以在加载后调用此代码:
$response = '
<script> function initialize { alert("Hello! I am an alert box!"); } </script>
<h3>inside return</h3>
<section class="regular slider">';
// Zeige die Glasfaser-Tarife
if ( $posts_gf->have_posts() ) :