获取Element Mouse已经过了JavaScript

时间:2013-08-30 00:27:05

标签: javascript html onmouseover

我正在尝试获取鼠标当前所在的元素并将其返回。从我迄今为止从研究中收集到的内容来看,这就是代码:

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

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

    alert(elementMouseIsOver);
}

但是,我创建的所有元素都有ID,但我总是得到“[object 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());
}

2 个答案:

答案 0 :(得分:3)

有两件事情浮现在脑海中。

  1. 尝试为function(event)函数传递function()而不仅仅是onmouseover

  2. event.target.id通常会获得ID - 尝试。

答案 1 :(得分:1)

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