$(document).ready(function(){ let viewTimer, oldSerialNo = $("#Serial_No").val(), timeout = 3000, specChanged = false //是否在手機板彈窗有切換規格 function viewProd(eventType, serialNo = $("#Serial_No").val()){ let eventList = { 1: "viewProduct", //開始觀看商品 或 離開後又回來 2: "leaveProduct", //切換分頁或切換規格 } $.ajax({ url:'/products/ajax/member/view_prod-p.php', type:"POST", cache:false, dataType: 'json', data:{ event: eventList[eventType], Serial_No: serialNo }, }); } //進入後 viewTimer = setTimeout(function(){ viewProd(1) }, timeout) //切換規格 $(document).on("changeSpec", ".productTitle, #pdlist-addToCart", function(){ clearTimeout(viewTimer) viewProd(2, oldSerialNo) //切換規格後的新SerialNo oldSerialNo = $("#Serial_No").val() specChanged = true //新規格計時 viewTimer = setTimeout(function(){ viewProd(1) }, timeout) }) //手機板左右切換商品 $(window).on("slideChangeTransitionEnd", function(){ clearTimeout(viewTimer) viewProd(2, oldSerialNo) $("#Serial_No").val($(".outer-item.swiper-slide-active .inner-slide").data("serial-no")) //切換商品後的新SerialNo oldSerialNo = $("#Serial_No").val() //新商品計時 viewTimer = setTimeout(function(){ viewProd(1) }, timeout) }) //手機板關閉規格彈窗 $(document).on("click", "#pdlist-addToCart .modal-closer", function(){ if(specChanged){ viewProd(2) specChanged = false } }) //重新整理/關閉頁籤/關閉瀏覽器 $(window).on("beforeunload", function(){ clearTimeout(viewTimer) viewProd(2) }) //頁面可見度(切換分頁或縮小等情況) $(document).on("visibilitychange", function(){ clearTimeout(viewTimer) if(document.hidden){ viewProd(2) }else{ //重新計時 viewTimer = setTimeout(function(){ viewProd(1) }, timeout) } }) })