Javascript 悬停时的jquery正文不能以其他div为目标
我正在尝试从以下位置访问我自己的javascript函数:Javascript 悬停时的jquery正文不能以其他div为目标,javascript,jquery,html,scope,Javascript,Jquery,Html,Scope,我正在尝试从以下位置访问我自己的javascript函数: $("body").on("mouseenter",".noteNode",function(){}); 问题似乎是,当我在上面的函数中时,jQuery将不允许我访问其他元素 让我进一步阐述: 我想使用的实际代码我已经跳过了: 我相信函数正在被调用,正如我所希望的那样,但是正如您所看到的,$(this)无法以悬停的实际div为目标,因此,当试图将此数据传递给另一个函数时,它就是没有到达-这是为什么?我相信这是一个范围的问题,但我已经尝
$("body").on("mouseenter",".noteNode",function(){});
问题似乎是,当我在上面的函数中时,jQuery将不允许我访问其他元素
让我进一步阐述:
我想使用的实际代码我已经跳过了:
我相信函数正在被调用,正如我所希望的那样,但是正如您所看到的,$(this)无法以悬停的实际div为目标,因此,当试图将此数据传递给另一个函数时,它就是没有到达-这是为什么?我相信这是一个范围的问题,但我已经尝试了一些方法来解决它,并搜索了s.O没有多少运气
我之所以需要在上使用$(“body”)。是因为我正在使用JS动态创建DIV(将悬停)
正如您所看到的,hover函数工作正常,并按其应该的方式启动,但完全无法访问DOM中我不理解的任何内容
[编辑]为了澄清:
我正试图将DIV的ID(由JS创建)传递给我自己的函数,我想在其中尝试访问DIVs offset参数,但我无法这样做,你会在我修改过的提琴中看到,我只是在我的警报框中“未定义”,这不是我想要的-我仍然相信这是因为范围问题。试试这个更新过的提琴:
请为您的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") );
});
function myFunction(someVar){alert(someVar);}
$(文档).ready(函数(){
$(“正文”).append('Note Node');
$(“正文”).append('Note Node');
$(“正文”).append('Note Node');
});
$(“body”).on(“mouseenter”,“.noteNode”,function(){
myFunction($(this.attr(“id”));
警报($(this.attr(“id”));
});
注意节点
没有为div分配id。它按预期工作<代码>ID未分配给您的分区:)-使用ID我的问题是错误的,我最终过度简化了我的问题。。。我应该编辑还是创建一个新问题?我使用了你的代码,并设法将其转化为以下内容:这是我想要的-因此event.target是我需要的-我想这是因为你正在将它传递到来自jQuery的函数调用中-而在我的问题中,我没有,我接受了这一点,因为即使我更新了问题,它也符合要求,基本上,我应该将事件传递给函数调用,而不是让它匿名(如果这是正确的措辞!)
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") );
});