gpt4 book ai didi

javascript - 如何访问一个非全局函数并且它存在于另一个js文件中?

转载 作者:行者123 更新时间:2023-11-28 06:43:08 24 4
gpt4 key购买 nike

我有以下 js 文件,我想从另一个函数访问一个函数,但我在另一个 js 文件中调用它。当我调用它时收到此错误 Uncaught ReferenceError: vidPause is not Define

(function($) {
$.fn.controlls = function(opt) {
......
function init() {
.....
}
function vidPause(e){
e.stopPropagation();
$.fn.controlls.toggleBarPlayingButtons('pause');
video.pause();
}
.....

从这个js文件中,我想在另一个js文件中的以下函数中调用vidPause

function myFunction(e) {
if (video) {
$('video').controlls(vidPause());

最佳答案

这个问题是范围问题。

init()vidPause()(function($) { 调用私有(private)的。它们不能直接访问您尝试访问它们的方式。

许多 jquery 插件使用文本(不是我的偏好,但这就是它们的工作方式),例如 $.dialog("open"),所以你可以做类似的事情(不确定 opt 是否意味着操作,所以更新相应地):

(function($) {
$.fn.controlls = function(action, opt) {
switch (action) {
case "pause":
vidPause(opt);
break;
...

使用

$('video').controlls("pause");
<小时/>

也许可以像使用 namespace 一样添加方法,但我没有在插件中看到过这种情况,因此取决于您对插件的操作(即发布它)是否想要保持一致,例如:

(function($) { 
$.fn.controlls = {};
$.fn.controlls.pause = function(opt) {
video.pause();
...

使用

$('video').controlls.pause()

关于javascript - 如何访问一个非全局函数并且它存在于另一个js文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33628251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com