从 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>
我的代码:
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>