[英]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.