大家好,对于这个问题很抱歉,但我不是JavaScript专家。

我正在尝试将Cookie警报框添加到我的网站,并且我想在用户单击按钮时以及在50像素后滚动页面时设置Cookie。我编写了这两个函数,但我不知道如何链接它们!

$(document).ready( function(){
  $('.cookies-eu-ok').click(function(e){
    e.preventDefault();
    $.cookie('cookie_eu_consented', 'true', { path: '/', expires: 365 });
    $('.cookies-eu').remove();
  });
});

$document.scroll(function() {
  if ($document.scrollTop() >= 50) {
    e.preventDefault();
    $.cookie('cookie_eu_consented', 'true', { path: '/', expires: 365 });
    $('.cookies-eu').remove();
  }
});

最佳答案

您可以执行以下操作:

var setCookie = function() {
    $.cookie('cookie_eu_consented', 'true', {
        path: '/',
        expires: 365
    });
    $('.cookies-eu').remove();
};

var $document = $(document); // Caching
$document.ready(function() {
    $('.cookies-eu-ok').on('click', function(e) {
        e.preventDefault();
        setCookie();
    });
});

// Run only once until cookie is set
$document.on('scroll', function(e) {
    if ($document.scrollTop() >= 50) {
        e.preventDefault();
        setCookie();
        $document.off('scroll');
    }
});



为通用功能创建单独的功能
将事件链接到相同的元素
缓存$(document)
使用on代替clickClick调用on内部

关于javascript - 聚合两个javascript事件函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30504343/

10-11 22:12
查看更多