Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过内联数据属性传递Javascript函数_Javascript_Html_Function_Attributes_Callback - Fatal编程技术网

通过内联数据属性传递Javascript函数

通过内联数据属性传递Javascript函数,javascript,html,function,attributes,callback,Javascript,Html,Function,Attributes,Callback,我正在使用一个Javascript文件上传库,它的一个特性是使用HTML5内联数据属性将信息传递给插件 这对于任何与数据、字符串、数字等相关的东西都非常有效,但是插件有一些回调方法,您可以将函数分配给它们。我的问题是,当试图通过这些内联数据属性传递javascript函数时,如下所示: <input type="file" name="test" data-on-finish="alert();"> <script type="text/javascript">

我正在使用一个Javascript文件上传库,它的一个特性是使用HTML5内联数据属性将信息传递给插件

这对于任何与数据、字符串、数字等相关的东西都非常有效,但是插件有一些回调方法,您可以将函数分配给它们。我的问题是,当试图通过这些内联数据属性传递javascript函数时,如下所示:

<input type="file" name="test" data-on-finish="alert();">
<script type="text/javascript">
    function myTesting(){
       alert('yay');
    }
</script>
<input type="file" name="test" data-on-finish="myTesting">
我假设它正在读取
alert()作为字符串。知道如何将可执行javascript传递给插件吗

我相信我使用的插件是jQuery文件上传插件的扩展:

更新: 我还尝试使用全局定义的函数,如下所示:

<input type="file" name="test" data-on-finish="alert();">
<script type="text/javascript">
    function myTesting(){
       alert('yay');
    }
</script>
<input type="file" name="test" data-on-finish="myTesting">

函数测试(){
警惕(“耶”);
}

我已尝试将finish上的
数据属性更改为
myTesting
myTesting()?差不多

//for example, a global function
window['someFunctionName'].call();

//a namespaced function
//similar to doing ns.someFunctionName()
ns['someFunctionName'].call();

看起来它正在尝试回调函数,如myfunction.call(

尝试传递是这样一个函数

<input type="file" name="test" data-on-finish="myFunction;">

function myFunction(){
 alert('I am alerting');
};

函数myFunction(){
警惕(“我在警惕”);
};

使用类似以下内容:

<input type="file" name="test" data-on-finish="alert();">
<script type="text/javascript">
    function myTesting(){
       alert('yay');
    }
</script>
<input type="file" name="test" data-on-finish="myTesting">
$(函数(){
功能测试(){
警报(“正常”);
}
$(“.test”)。数据(“test”,test);
$(“.test”)。数据(“test”)();
});


尝试了一下,运气不好。我已经添加了上面的更新。我认为eval()可以完成这项工作,但可能很危险:我尝试了这个,但不幸没有成功。它仍在尝试调用
call()
字符串上的方法seems@petehare不,它不是调用字符串。答案使用该字符串指向特定命名空间中的该函数。类似的情况是,它将
myFunction;
作为字符串读取,并尝试运行
“myFunction;”。对字符串调用()
方法。。。