你好,我有使用HTML的这段代码:
<button type="button" onclick="test()">{...}
</button>
这是我用Javascript编写的代码:
$(document).on('click', '.test_test', function (e) {
...
});
这是我的功能:
function test(){
...
}
问题是我想把我的函数test()像这样:
$(document).on('click', '.test_test', function (e) {
...
function test(){
...
}
});
但是,如果test是$(document).on('click', '.test_test', function (e) { ... }
的内部函数,则无法调用函数test(),而当test()函数是$(document).on('click', '.test_test', function (e) { ... }
的外部函数时,该函数将起作用。
能帮我吗?
非常感谢您!
编辑:我想要的实际上是在函数$(document).on('click', '.test_test', function (e) { ...}
中的test()
中传递一个变量,但是我不知道该怎么做,我试图捕获这样的变量:< / p>
<button type="button" onclick="test(variable)">{...}
</button>
并像这样编辑功能测试:
function test(variable){
alert(variable);
}
但这不起作用...
答案 0 :(得分:1)
为什么不简单地从第一个调用函数?
Guid
还有$(document).on('click', '.test_test', function (e) {
...
test()
});
function test(){
...
}
是什么?
答案 1 :(得分:0)
在阅读问题中的编辑后,我认为您尝试告诉我们的可能性有两种:或者您想要在HTML对象中使用硬编码的变量,或者您想要在事件的函数中传递变量。这是完成这两项操作的方法:
硬编码var:
function test(str){
console.log(str);
};
<button class="test_test" onclick="test('whatever');">Test</button>
事件功能中的变量:
$(document).on('click', '.test_test', function (e) {
function test(str){
console.log(str);
};
var msg = "Whatever2";
test(msg);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="test_test">Test</button>
答案 2 :(得分:0)
一种方法是将变量保留在数据属性中:
<button type="button" class="myclass" data-myvar="myval">Button</button>
然后在您的函数中进行抓取:
jQuery(document($) { // shorthand for document.ready with the $ alias
$('.myclass').click(function() {
let myVal = $(this).data('myvar'); // get the data variable
test(myVal); // pass the variable to your function
});
// Define test() here or outside this block, depending on
// whether it needs access to DOM elements itself.
}):