【问题标题】:Jquery detect id/class by overlappingJquery 通过重叠检测 id/class
【发布时间】:2011-08-18 20:40:52
【问题描述】:

我在谷歌上搜索了很多,但没有运气......

基本上我需要一些js,它可以找到我悬停的元素的id/class(所以我可以使用“this”-property)。

因为我的页面上有很多 div(有些必须是自动生成的,具有随机名称 [或者可能不是,如果我可以使用“this”-property]),我不想输入在所有名称中(例如我必须在_hittest 中做的,只给我一个真/假值)

希望你们能帮助我:D 我真的一直在寻找这个,很长一段时间

*编辑: 我正在寻找的不是鼠标悬停,而是将一个 div 悬停在另一个 div 上时

【问题讨论】:

  • 所以澄清一下,您正在为 dom 元素的边界框寻找类似于碰撞检测的东西?将一个元素拖入/越过另一个元素?在这种情况下,我认为这个线程是我的帮助:stackoverflow.com/questions/773717/…
  • 不,不可拖动,如果一个 div 与另一个 div 重叠(我可以使用箭头键控制 div)
  • 如果你可以用方向键控制它,它是可拖动的(不是用鼠标而是用键盘,效果是一样的)。您可以遍历所有 DOM 元素以查找它们的边界框是否与移动的 DIV 相交并返回所有匹配元素的数组(因此不需要 id/class),我建议您查看列出的 jquery 插件我提到的指导线程,因为这似乎在你想要完成的轨道上

标签: javascript jquery


【解决方案1】:

您可以这样做,尽管选择所有 div 是不好的做法:

$('div').mouseover(function(){
    console.log(this); 
});

【讨论】:

    【解决方案2】:

    放入方便的文本区域以从中复制:

    <textarea id="A"></textarea>
    

    JS:

    $('div').mouseover(function() {
        $('#A').html($('#A').html() + "\nID: " + $(this).attr('id') + " CLS:" + $(this).attr('class') + " Name:" + $(this).attr('name') )
    })
    

    【讨论】:

      【解决方案3】:

      这样的?它将查找页面上所有具有idname 属性的元素并附加悬停事件处理程序。

      $("*[id], *[name]").hover(function(){
             alert(this.id || this.name);
      });
      

      【讨论】:

      • 这只会显示带有id name的元素;对于“或”情况:$('*[id], *[name]') 会更好。
      • 只有用鼠标悬停才能起作用,我正在寻找的是可以被另一个元素悬停的东西
      • @Moiblpadde - 被另一个元素悬停是什么意思?
      • 带一个div(只需要多加5个字符,贴出来)
      • 你的意思是有一个 div,如果它与其他元素重叠你想找到它的 id 或 name?
      【解决方案4】:

      刚刚用偏移量做了一些计算

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-19
        • 1970-01-01
        • 2017-05-08
        • 2016-04-30
        • 2011-08-27
        相关资源
        最近更新 更多