2013-08-30 56 views
1

我正在嘗試獲取鼠標當前結束的元素並將其返回。從我迄今從研究收集的,這是代碼做到這一點:獲取元素鼠標已結束JavaScript

document.getElementById('theTable').onmouseover = function() { 

    var x = event.ClientX, y = event.ClientY, 
     elementMouseIsOver = document.elementFromPoint(x, y); 

    alert(elementMouseIsOver); 
} 

然而,所有我創建的元素有ID的,但我總是得到「[HTMLDivElement對象]」恆定回報,我期待它告訴我該元素的ID是什麼......我濫用了代碼嗎?這將成爲SharePoint內Web部件上的導航欄。

在此先感謝您提供任何有用的信息。

全部代碼:

var siteUrl = '/sites/dev/'; 
var theCounter = 0; 
ExecuteOrDelayUntilScriptLoaded(retrieveListItems, "sp.js"); 

function retrieveListItems() { 
var clientContext = new SP.ClientContext(siteUrl); 
var oList = clientContext.get_web().get_lists().getByTitle('myList'); 
var camlQuery = new SP.CamlQuery(); 
camlQuery.set_viewXml("<Where><And><IsNotNull><FieldRef Name='Title' /></IsNotNull> <IsNotNull><FieldRef Name='TitleLink' /></IsNotNull></And></Where>"); 
this.collListItem = oList.getItems(camlQuery); 
clientContext.load(collListItem); 
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); 
} 

function onQuerySucceeded(sender, args) 
{ 
var listItemEnumerator = collListItem.getEnumerator(); 
    while (listItemEnumerator.moveNext()) 
    { 
    var oListItem = listItemEnumerator.get_current(); 

    //Each column in in the SharePoint List will essentially become an array. 
    //So make an array for each column that will be returned! 

    var theHeaders = new Array(); 
    var HeaderLinks = new Array(); 
    theCounter += 1; 
    theHeaders[theCounter - 1] = oListItem.get_item('Title'); 
    HeaderLinks[theCounter - 1] = oListItem.get_item('TitleLink'); 

    //Get the Table Element created in HTML 
    var getTheTableTag = document.getElementById('theTable'); 

    //Create the headers (top level links) 
    var createTheHeaderElements = document.createElement('td'); 
    createTheHeaderElements.id = 'headerTag'; 

    var link = document.createElement('a'); 
    link.id = 'headerLinksTag'; 

    var theHeaderText = document.createTextNode(theHeaders[theCounter - 1]); 
    link.setAttribute("href", HeaderLinks[theCounter - 1]); 


    link.appendChild(theHeaderText); 
    createTheHeaderElements.appendChild(link); 
    getTheTableTag.appendChild(createTheHeaderElements); 


//  var createA = document.createElement('a'); 
//  var createAText = document.createTextNode(theCounter); 
//  createA.setAttribute('href', "http://google.com"); 
//  createA.appendChild(createAText); 
//  getTheTableTag.appendChild(createA); 


}; 

////////////////////////////HERE IS THE PROBLEM CHILD////////////////////// 


document.getElementById('theTable').onmouseover = function() { 

    var x = event.ClientX, y = event.ClientY, 
     elementMouseIsOver = document.elementFromPoint(x, y); 

    alert(elementMouseIsOver); 
} 

/////////////////////////////////////////////////////////////////////////// 
} 
function onQueryFailed(sender, args) { 
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 
} 
+1

使用的console.log – raam86

+0

此外,您ClientX需要開始與非資本:clientX(與同爲當然Y) –

回答

3

兩件事情浮現在腦海中。

  1. 嘗試通過function(event)而不是簡單地function()onmouseover功能。

  2. event.target.id通常會得到身份證 - 試試。

+1

事2:這正是我一直在尋找。 – Rodrigo

1
document.getElementById('theTable').onmouseover = function (e) { 
    console.log(e.target) 
    alert("mouse is over " + e.target.id); 
}