簡體   English   中英

如何通過Jquery使onclick事件起作用

[英]How to make onclick event works via Jquery

我們的shopify商店遇到了一些麻煩:並且我們想嘗試手動將_ga paramteter發送到checkout.shopify.com。 我有經驗,通過在onclick上添加以下代碼行來解決此問題:

$html += "<a href=\"/checkout\" onclick=\"ga(function (tracker) {var linkerParam = tracker.get('linkerParam'); document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/';}); document.getElementById('cartform').submit();\" class=\"btn btn-1 btn-block big\">{{ 'general.cart_info.checkout' | t }}</a>"; 

但是使用此網站無法正常工作。 現在是這樣的:

 jQuery('<div class="action"><button class="btn btn-default" onclick="window.location=\'/checkout\'">{{ 'general.header.cart_info.checkout' | t }}</button></div>').appendTo(cart_summary);

這就是我想要做的:

 jQuery('<div class="action"><a href="/checkout\" id="checkout-link" class="btn btn-default" onclick=\"ga(function (tracker) {var linkerParam = tracker.get('linkerParam'); document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/';}); document.getElementById('cartform').submit();\">{{ 'general.header.cart_info.checkout' | t }}</button></div>').appendTo(cart_summary);

我也試圖做到這一點:

$(document).ready(function() {

    $("a#checkout-link").each(function() {
        var text = $(this).text();
        var thisEvent = $(this).attr("onclick"); // grab the original onclick event
        $(this).click(function(event) { //  when someone clicks these links
            event.preventDefault(); //  don't open the link yet
            ga(function (tracker) {var linkerParam = tracker.get('linkerParam'); 
            document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/';}); 
            document.getElementById('cartform').submit();
            setTimeout(function() { // now wait 300 milliseconds...
                eval(thisEvent); // ... and continue with the onclick event
            },300);
        });
    });

});

用所有這些方法都行不通。 我知道我在代碼方面不是菜鳥,但也許有人可以幫助我?

那么,您是否要在重定向頁面之前執行該ga函數? 如果是這樣,請嘗試創建一個簡單的函數來完成您要執行的操作:

function saveLinkerParam(){
 ga(function (tracker) {var linkerParam = tracker.get('linkerParam'); document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/';}); 
}

然后在已經存在的onclick處理程序中執行它(只是在window.location之前進行了更改:

jQuery('<div class="action"><button class="btn btn-default" onclick="saveLinkerParam();window.location=\'/checkout\' + ">{{ 'general.header.cart_info.checkout' | t }}</button></div>').appendTo(cart_summary);

(您不必創建新的函數saveLinkerParam,但我認為它使代碼更具可讀性)

我還沒有嘗試實際執行此代碼,因此,如果遇到任何語法錯誤,請告訴我。 順便說一句,我認為您嘗試的代碼的問題可能是語法,更確切地說是在jQuery函數中連接文本和變量時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM