2013-08-30 2 views
1

Я пытаюсь получить элемент, который мышь в настоящее время закончил и вернуть его. Из того, что я собрал до сих пор от исследований, это код, чтобы сделать это:Получить элемент Мышь над JavaScript

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

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

    alert(elementMouseIsOver); 
} 

Однако все элементы я создал у идентификаторов, но я всегда получаю постоянное возвращение «[объект HTMLDivElement]» Я Я ожидаю, что он скажет мне, что такое идентификатор этого элемента ... Я злоупотребляю кодом? Это станет панелью навигации в веб-части SharePoint.

Заранее благодарим за любой полезный ввод.

Все Код:

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

Thing 2: это именно то, что я искал. – Rodrigo

1
document.getElementById('theTable').onmouseover = function (e) { 
    console.log(e.target) 
    alert("mouse is over " + e.target.id); 
} 
Смежные вопросы