簡體   English   中英

當用戶點擊時,我如何收集x / y以及可能已被點擊的任何鏈接?

[英]When a user clicks, how can I collect the x/y as well as any link that may have been clicked?

我有一種感覺,按鈕 - 這不是一個鏈接 - 是誤導,但需要證據。 所以我想記錄鏈接點擊以用於分析目的,但也希望將非鏈接點擊記錄為xy坐標。

所以首先我想使用$('a'),但這只會收集鏈接點擊,所以我想做這樣的事情:

$('html').click(function(event){
  var x = event.clientX; //will these change if the user has scrolled?
  var y = event.clientY;
  var link_clicked = 0;

  //this is what I'm not sure about:
  if($(this) <contains a link that was clicked>){
    link_clicked = $('<link clicked>').attr('title');
  }
  //so how do I find what link was clicked?

  var data = {x:x;y:y;link_clicked:link_clicked};
  $post(ajax_url, data, function(response){
    //do nothing
  });
});

所以我的第一個問題是:如果點擊鏈接,我如何在點擊的html元素中找到鏈接?

我的第二個問題是:當用戶滾動時,clientX / Y會改變嗎? 例如,如果用戶點擊不同滾動位置中的相同鏈接,我希望x = 420相同。

嘗試這個:

   var myItem=$('#myLink');
    $('html').click(function(event){
      var x = event.clientX; //will these change if the user has scrolled?
      var y = event.clientY;
      var link_clicked = 0;
      var clickedItem=event.target;
      if(clickedItem==myItem)
        console.log('clicked')
     ...
    });

編輯:

var myItem=$('#myLink');
var x=myItem.offset().left;
var y=myItem.offset().top;
var clientX=event.clientX;
var clientY=event.clientY;

從那里你可以得到相對的x / y值..如果我理解正確的話。

關於你的第二個問題。 ..
是的clientX / clientY會隨着滾動而改變,因為它們是瀏覽器特定的(相對於top-browser-bar,你可以想到)而不是特定於文檔。

暫無
暫無

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

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