首页 > 解决方案 > dataLayer.push 重复

问题描述

我正在尝试推送数据层。但它一直给我一个重复的数组。请看下面我的代码

<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<script>

 dataLayer = [{
 'productID': '123456',
 'productTitle': 'Very awesome product',
 'productPrice': '13.00'
 }];
function next_step1c() {
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
     'event': 'Enquiry',
     'PageURL': window.location.href,

     });
}
</script>
<fieldset id="firstc">
          <div class="funkyradio">
            <div class="funkyradio-success" onclick="next_step1c()">
                <input type="radio" name="buy" id="check1c" value="Rolex"/>
                <label for="check1c">Rolex</label>
            </div>
          </div>
</fieldset>

当我单击单选按钮时,我得到以下结果。 在此处输入图像描述

但是当我点击劳力士这个词时。我得到重复

在此处输入图像描述

只有点击劳力士这个词,我才能得到一推?

标签: javascriptjquery

解决方案


试试这样。您将 onclick 添加到.funkyradio-success类。因此,当您clicked单击单选按钮时,它只会起作用1。但是当你点击标签按钮时,它就在那里clicks double。因为当你click label在那里工作时.funkyradio-success点击。所以label binded to radio inputinput click trigger有效。所以你的函数调用2时间。

 dataLayer = [{
 'productID': '123456',
 'productTitle': 'Very awesome product',
 'productPrice': '13.00'
 }];
function next_step1c() {
console.log('you clicked me');
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
     'event': 'Enquiry',
     'PageURL': window.location.href,

     });
}
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

<fieldset id="firstc">
          <div class="funkyradio">
            <div class="funkyradio-success" onclick="next_step1c()">
                <input type="radio" name="buy" id="check1c" value="Rolex"/>
                <label for="check1c">Rolex</label>
            </div>
          </div>
</fieldset>

添加 onclick 输入单选

 dataLayer = [{
 'productID': '123456',
 'productTitle': 'Very awesome product',
 'productPrice': '13.00'
 }];
function next_step1c() {
console.log('you clicked me');
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
     'event': 'Enquiry',
     'PageURL': window.location.href,

     });
}
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

<fieldset id="firstc">
          <div class="funkyradio">
            <div class="funkyradio-success" >
                <input type="radio" name="buy" id="check1c" onclick="next_step1c()" value="Rolex"/>
                <label for="check1c">Rolex</label>
            </div>
          </div>
</fieldset>


推荐阅读