悬停时jquery body无法定位其他DIVS

时间:2014-03-25 11:30:09

标签: javascript jquery html scope

我正试图从:

中访问我自己的javascript函数
$("body").on("mouseenter",".noteNode",function(){});

麻烦似乎是当我在上面的函数里面时jQuery不允许我访问其他元素?

让我进一步阐述: 我想使用的实际代码我已经jsfiddled:http://jsfiddle.net/uJ2Yb/8/

我相信函数正在调用,因为我想要它,但正如你所看到的那样$(this)无法定位正在悬停的实际div,所以当试图将这些数据传递给它只是没有到达的其他功能 - 为什么会这样?我认为这是一个范围问题,但我已经尝试了几种方法来解决它并搜索S.O而没有太多运气。

需要使用$(" body")的原因是因为我正在创建DIV(将会悬停) JS。

正如您所看到的,悬停功能正常工作并按照应有的方式触发,但完全无法访问DOM中我不理解的任何内容

[编辑] 以澄清:http://jsfiddle.net/uJ2Yb/8/

我试图将DIV的ID(由JS创建)传递给我自己的函数,我想尝试访问DIVs偏移参数 - 但我无法这样做,你会看到我修改过的小提琴,我刚刚得到的' undefined'在我的警报框中,这不是我想要的 - 我仍然相信这是因为范围问题。

2 个答案:

答案 0 :(得分:2)

尝试这个更新的小提琴:http://jsfiddle.net/uJ2Yb/7/

function myFunction(someVar){ alert(someVar); } 

$("body").on("mouseenter",".noteNode",function(event){
    myFunction(event.target.innerHTML );
    //alert( event.target.innerHTML );
});

答案 1 :(得分:0)

请为您的Div分配唯一ID

尝试此代码

function myFunction(someVar){ alert(someVar); } 

$(document).ready(function(){
   $("body").append('<div class="noteNode" id="a">Note Node</div>');
   $("body").append('<div class="noteNode" id="b">Note Node</div>');
   $("body").append('<div class="noteNode" id="c">Note Node</div>');
});


$("body").on("mouseenter",".noteNode",function(){
    myFunction( $(this).attr("id") );
    alert( $(this).attr("id") );
});