jQuery - 检测可见元素和触发器功能

时间:2016-10-26 19:18:11

标签: jquery google-analytics

我围绕模块构建了我的CMS(例如:幻灯片,页脚,导航......),我想通过Google Analytics事件跟踪这些模块的使用情况。

我所做的是以下内容: 在每个PHP模块中,我添加了一个跟踪给定模块位置的JS函数,当模块在视口中可见时,会触发Google Analytics部件。

以下是代码:

init = 0;
$(window).scroll(function() 
{ 
    screenheight = $(window).height();
    scrollposition = $(window).scrollTop()+screenheight;
    divheight = $("[containername]").height();
    divposition = $("[containername]").position().top;
    if ((scrollposition>divposition) && (init==0))
        {
            ga('send', { 'hitType': 'pageview', 'page': 'blablabla', 'title': 'more blablabla' });
            init = 1;
        }

});

一切正常但是......我有很多模块,把它放在每个模块中可能不是最聪明的事情。所以现在我正在寻找更通用的解决方案。

每个模块都封装在一个具有唯一ID的div中。每个唯一ID以-container结尾,例如:navigation-container,slideshow-container,...

我想要做的是检测其中一个-container div是否出现在视口中(其中任何一个),如果是这种情况,则触发相同的JS。我尝试过使用.match和正则表达式,但它看起来不像是能够检测到各个div。

我还想以同样的方式跟踪这些div中的点击次数。今天我为每个模块编写了单独的JS。

有什么建议吗?

******更新********** 我使用过滤器+ regexp解决了点击跟踪部分:

$('div').filter(function() {  return this.id.match(/container/);     }).click(function()
{
   // do something
});

这使我可以对要跟踪的div中的所有点击进行一次通用点击跟踪。

现在我仍然在寻找另一个问题的解决方案(在视口中检测)

由于 劳伦

0 个答案:

没有答案