JS没有在点击时触发

时间:2014-06-27 08:04:08

标签: javascript php jquery wordpress

我正在尝试通过按钮加载函数call_ajax_add_to_quotelist,代码如下:

$cartlink .= '<a class="add_to_cart button alt" href="javascript:void(0);" onclick="call_ajax_add_to_quotelist(add_to_quotelist_ajax_url,'.$product->id.');" '.$style.'>'.$label.'</a>';

上面的代码在视图源上正常加载,但是点击它时显示死机没有控制台错误我已经在函数中加载了js文件(它属于另一个插件我正在攻击一个WP插件另一个插件的相同动作)

脚本加载:

$quotePluginJSUrl = site_url().'/wp-content/plugins/dvin-wcql/js/dvin_wcql.js';
?>
        <script src="<?php echo $quotePluginJSUrl; ?>"></script>
<?php

3 个答案:

答案 0 :(得分:1)

关闭锚点

<a>...</a>

答案 1 :(得分:1)

如果call_ajax_add_to_quotelist真的是JavaScript控制台中的一个函数,并且add_to_quotelist_ajax_url是正确值,我首先检查一下。

此外,建议使用onclick。我建议使用jQuery事件绑定器.on()

Expl。:

<?php
$cartlink .= "<a class='add_to_cart button' data-id='{$product->id}' 
   href='javascript:;' {$style}>{$label}</a>";
// ... more products
?>

// **one** <script> after all products
<script>
jQuery(window).on('click', '.add_to_cart.button', function() {
    call_ajax_add_to_quotelist(add_to_quotelist_ajax_url, $(this).data('id');
}
</script>

答案 2 :(得分:0)

因为您正在动态添加锚点,如果您使用JS或事件委派,如果您使用的是jQuery,则需要使用.addEventListener

e.g。

$('.button').on('click',function(){
    call_ajax_add_to_quotelist(add_to_quotelist_ajax_url,'.$product->id.');
});

另外,您还没有关闭代码中的锚标记,这可能会导致一些问题:

$cartlink .= '<a class="add_to_cart button alt" href="javascript:void(0);" '.$style.'>'.$label.'</a>'