Javascript事件未显示在Chrome Developer Console中

时间:2016-03-01 19:37:06

标签: javascript google-chrome

我有这个按钮:

<a href="#" ng-click="addToCart()" onclick="step4()" class="btn btn-submit btn-block">Add to Cart</a>

然后我有这个Javascript:

function step4() {
    dataLayer.push({
        'event': 'checkout',
        'ecommerce': {
            'checkout': {
                'actionField': {'step': 4}
            }
        }
    });
}

在Chrome开发者控制台中,单击链接时它没有显示任何触发器?有小费吗?我怎么能告诉我的JS正在解雇?

2 个答案:

答案 0 :(得分:1)

我猜你应该阻止锚元素的默认动作

尝试 function step4(e) { e.preventDefault(); dataLayer.push({ 'event': 'checkout', 'ecommerce': { 'checkout': { 'actionField': {'step': 4} } } }); }

答案 1 :(得分:1)

你的功能应该被触发,但你没有输出任何东西到控制台,所以你不会看到任何东西。您应该尝试在函数中放置一个console.log()语句,它将一些文本输出到开发控制台。

你可以做这样的事情,一旦命中函数就会打印到控制台,然后在它完成之前第二次与dataLayer对象的新值一起打印:

function step4() {
    console.log('Inside step4 function.');

    dataLayer.push({
        'event': 'checkout',
        'ecommerce': {
            'checkout': {
                'actionField': {'step': 4}
            }
        }
    });

    console.log('End of function call: ', dataLayer);
}

这是一个吸虫: https://plnkr.co/edit/fLcx1oX4Q1A6XoiBOGcp?p=preview