javascript - 单击链接文本时,jQuery 函数(事件)event.target.id 为空

标签 javascript jquery jquery-events

我有一个侧面菜单,单击它会滑出以显示内容面板。根据单击的菜单项,我显然需要在面板中填充不同的内容。

我写了一个函数来操作菜单/面板,它部分起作用了。但是,我试图根据 event.target.id 确定要加载的内容(因为该函数采用 event),但只有当我非常接近链接正方形的边缘。当我在 h1h6 并且没有 id 的实际文本附近单击时,它不起作用。

现场演示(单击“样式”方 block 边缘附近,然后单击中间):http://jsfiddle.net/mANuD/

<div id="application-frame">
  <div class="panel"></div>
  <ul id="slide-out-menu">
    <li>
      <a href="#" class="item" id="styles-menu">
        <h1>S</h1>
        <h6>Styles</h6>
      </a>
    </li>
    <li>
      <a href="#" class="item" id="designers-menu">
        <h1>D</h1>
        <h6>Designers</h6>
      </a>
    </li>
    <li>
      <a href="#" class="item" id="code-menu">
        <h1>C</h1>
        <h6>Code</h6>
      </a>
    </li>
    <li>
      <a href="#" class="item" id="help-menu">
        <h1>?</h1>
        <h6>Help</h6>
      </a>
    </li>
  </ul>
</div>

我该如何解决/改进这个问题,这样我点击链接区域的哪个位置就无关紧要了?

最佳答案

event.target.id 更改为 event.currentTarget.idthis.id

event.target 始终是点击的最深元素,而 event.currentTargetthis 将指向处理程序所指向的元素已绑定(bind),或绑定(bind)到委托(delegate)选择器匹配的元素。

关于javascript - 单击链接文本时,jQuery 函数(事件)event.target.id 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15700452/

相关文章:

javascript - 尝试使用基于内容高度自动扩展和收缩的文本区域创建 React 组件(使用 Sandbox)

javascript - 在 Backbone View 中渲染 reCAPTCHA v2.0 小部件

javascript - 没有 npm 的 react - 是否可以导入库/模块?

javascript - Angular 将 JSON 解析为指令

javascript - 触发在不同代码块中分配的 jQuery 事件处理程序

javascript - 函数中的 Jquery/Javascript 目标

javascript - 有人可以使用 .bind() 函数向我解释这段代码吗?

javascript - 浏览器化 "module is not defined"

javascript - 如何将 preventDefault 调用传递给其他事件?

javascript - 是否定义了许多 jQuery 事件处理程序 "expensive?"在 C/C++ 或 JavaScript 级别内部实现?