Javascript 从内部JS代码块调用外部JS函数
我有2个JS块正在使用。一个是我的HTML内部的。它处理触摸功能。另一个是一个外部文件,它是一个内容滑块。基本上,我想使用touchevents来控制滑块,并根据用户在移动设备上滑动的方向移动到上一张/下一张幻灯片,但在台式机上有更传统的控件。是否可以从内部代码块调用外部文件中的函数 HTML文件Javascript 从内部JS代码块调用外部JS函数,javascript,jquery,html,Javascript,Jquery,Html,我有2个JS块正在使用。一个是我的HTML内部的。它处理触摸功能。另一个是一个外部文件,它是一个内容滑块。基本上,我想使用touchevents来控制滑块,并根据用户在移动设备上滑动的方向移动到上一张/下一张幻灯片,但在台式机上有更传统的控件。是否可以从内部代码块调用外部文件中的函数 HTML文件 <html> <head> <script type="text/javascript" src="js/externalfile.js"></script&
<html>
<head>
<script type="text/javascript" src="js/externalfile.js"></script>
<script>
... lots of code for touchevents ....
function processingRoutine() {
if ( swipeDirection == 'left' ) {
// Function below is in external file
previous();
} else if ( swipeDirection == 'right' ) {
// Function below is in external file
next();
}
</script>
</head>
<body>
Some HTML code
</body>
是否有一种简单的方法来实现这一点,或者是否有一个内置了此功能的旋转器?滑块必须以某种方式实例化,并且您可能有一个对它的引用,即,为了使滑块在第一时间工作,您可能会调用类似于
$('.mySlider').slider()的东西代码>
如果你改成
window.mySlider=$('.mySlider').slider()代码>
然后,您可以在“内部”代码中调用mySlider.next()
或类似程序。为什么不将代码提取到外部js文件中?我看不出有任何理由需要将它嵌入到脚本标记中,总的来说,我认为这可能是一个糟糕的架构决策
第二个想法,您也可以通过声明一个全局变量并访问它来实现它,尽管这不是一个很好的实践 如果您不介意编辑插件,可以使用jQuery的事件API
// external file
(function($) {
....
$(window).on('slider:next', next);
$(window).on('slider:previous', previous);
})(jQuery);
// inline js (this should really live in its own file, too)
function processingRoutine () {
if ( swipeDirection === 'left' ) {
$(window).trigger('slider:next');
} else if ( swipeDirection === 'right' ) {
$(window).trigger('slider:previous');
}
}
不,这是不可能的,这是故意的。出于某种原因,编写该插件的人认为你不值得拥有该功能:P
// external file
(function($) {
....
$(window).on('slider:next', next);
$(window).on('slider:previous', previous);
})(jQuery);
// inline js (this should really live in its own file, too)
function processingRoutine () {
if ( swipeDirection === 'left' ) {
$(window).trigger('slider:next');
} else if ( swipeDirection === 'right' ) {
$(window).trigger('slider:previous');
}
}