setSlide、setMobile、およびhideによって提供される機能を扱う単一の関数を定義し、遅延の発生時にSetTimeoutによって呼び出される関数を渡すだけです。私はこれを行う方法がわかりません。誰かがこれを達成する方法を説明してもらえますか?ありがとうございました。他の関数の機能を扱う単一の関数を定義する
(function($) {
var currentTime = new Date().getTime()/1000;
var setSlide = function (timeout) {
setTimeout(showSlide, timeout * 1000);
},
showSlide = function() {
$('.newsletter-popup').addClass('slide-left');
},
setMobile = function (timeout) {
setTimeout(showMobile, timeout * 1000);
},
hide = function (timeout) {
setTimeout(hideMobile, timeout * 1000);
},
showMobile = function() {
$('.newsletter-popup').removeClass('hidden');
},
hideMobile = function() {
$('.newsletter-popup').addClass('hidden');
};
$(document).ready(function() {
if (readCookie('nl_suppress')) {
$('.newsletter-popup').removeClass('slide-left');
} else if (!readCookie('nl_display')) {
setSlide(10);
} else if (currentTime - readCookie('nl_display') > 86400) {
showSlide();
} else {
setSlide(currentTime - (readCookie('nl_display') + 86400));
}
$('.nlForm').submit(function() {
createCookie('nl_suppress', new Date(), 30);
});
function checkCookie() {
var date = new Date();
date.setTime(date.getTime() + (86400000));
$('.newsletter-popup').removeClass('slide-left');
hide(1);
if(readCookie('nl_display')) {
// already been clicked once, hide it
createCookie('nl_suppress', new Date(), 180);
return;
}
// first time this is clicked, mark it
createCookie('nl_display', new Date().getTime()/1000, 180);
setMobile(14);
setSlide(15);
};
$('.newsletter-close').on('click', checkCookie);
});
})(jQuery);
単一の機能をどのように表示する必要がありますか? – zhon