我怎么能得到这个论点?

时间:2019-04-25 13:04:50

标签: javascript html

你好,我有使用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); }

但这不起作用...

3 个答案:

答案 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.
}):

https://api.jquery.com/data