从 onclick="getTagname(text)" 调用函数时传递变量

Pass a variable while calling the function from onclick="getTagname(text)"

我的代码:

function getTagname(e) {
  console.log(e);
}
$(document).mousedown(function(e) {
  if (e.button == 2) {
    var text = $(e.target).attr('id'); // getting the element id and stored in var text
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="menu">
  <span class="menuItem" onclick="getTagname(text);">get element tagname</span>
  <br>
  <span class="menuItem">get id</span>
  <br>
  <span class="menuItem" onclick="reload();">refresh</span>
</div>

我想在调用函数时将 text 变量作为参数传递 onclick="getTagname(text);"

但不工作。

我从我的角度尝试了一切,做了很多事情。

最后找不到对我有用的东西。

提前致谢...

要在事件之间访问变量通常需要在全局范围内定义值,这是不好的做法。

更好的方法是将值存储在 data 属性中,所有需要的位置都可以访问该属性。这也意味着您可以避免使用丑陋和过时的 onX 事件属性。试试这个:

jQuery($ => {
  let $doc = $(document);

  $('.get-id').on('click', () => {
    let elementId = $doc.data('last-id');
    console.log(elementId);
  });

  $('refresh').on('click', () => window.location.reload());

  $(document).on('mousedown', e => {
    if (e.button === 2) {
      $doc.data('last-id', e.target.id);
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="menu">
  <span class="menuItem get-id">get element id</span><br />
  <span class="menuItem" id="foo">get id - right click me</span><br />
  <span class="menuItem" id="bar">get id - right click me</span><br />
  <span class="menuItem" id="fizz">get id - right click me</span><br />
  <span class="menuItem" id="buzz">get id - right click me</span><br />
  <span class="menuItem refresh">refresh</span>
</div>