2

嗨,我正忙着将我所有的内联 javascript 移动到 combine.js 文件中。在我的标题中,我有下面的代码。我在wordpress工作。

下面的代码在我的页面上创建了一个滑块功能。我已经将大部分 javascript 移动到一个组合的 js 文件中。

<br /><br /><script>(function($){jssor_slider1_starter = function (containerId) {var jssor_slider1 = new $JssorSlider$(containerId, {$DragOrientation: 3, $ArrowNavigatorOptions: {$Class: $JssorArrowNavigator$, $ChanceToShow: 2 }}); function ScaleSlider() { var windowWidth = $JssorUtils$.$GetWindowSize(window).x; if (windowWidth) jssor_slider1.$ScaleWidth(windowWidth); else window.setTimeout(ScaleSlider, 30);}
        $Jssor$.$AddEvent(window, "load", ScaleSlider);

        $Jssor$.$AddEvent(window, "resize", $Jssor$.$WindowResizeFilter(window, ScaleSlider));
        $Jssor$.$AddEvent(window, "orientationchange", ScaleSlider);

};})(jQuery); 滑块 Javascript (function($){jssor_slider1_starter('slider1_container')})(jQuery);

我曾尝试将这些部分移动到 Js 文件中,但不要使用document.Write将 html 部分写入页面,而是将 html 部分保留在页面中,并希望我可以让 JavaScript 函数在自定义后执行.js 已加载,这将按预期呈现 html。

我已将此部分复制到 combine.js 文件中。

(function($){jssor_slider1_starter = function (containerId) {var jssor_slider1 = new $JssorSlider$(containerId, {$DragOrientation: 3, $ArrowNavigatorOptions: {$Class: $JssorArrowNavigator$, $ChanceToShow: 2 }}); function ScaleSlider() { var windowWidth = $JssorUtils$.$GetWindowSize(window).x; if (windowWidth) jssor_slider1.$ScaleWidth(windowWidth); else window.setTimeout(ScaleSlider, 30);}

        $Jssor$.$AddEvent(window, "load", ScaleSlider);

        $Jssor$.$AddEvent(window, "resize", $Jssor$.$WindowResizeFilter(window, ScaleSlider));
        $Jssor$.$AddEvent(window, "orientationchange", ScaleSlider);

};})(jQuery);

还有这部分

(function($){jssor_slider1_starter('slider1_container')})(jQuery);

但我没有运气

任何关于为什么这个脚本正确内联执行的想法,但当我将它包含到 js 文件中时,将不胜感激,并且任何关于如何从外部 combine.js 文件实现调用以使其工作的建议将不胜感激

4

2 回答 2

2

您需要先slider1_container渲染 div 才能使用它,尝试将 JS 调用放在页脚或包装:

(function($){jssor_slider1_starter('slider1_container')})(jQuery);

像这样:

jQuery(document).ready(function() {
  (function($){jssor_slider1_starter('slider1_container')})(jQuery);
});

所以它在执行 JS 之前等待文档准备好。

于 2013-07-21T19:24:15.690 回答
1

如果您在外部文件 combine.js 中拥有所有 JS,只需使用如下脚本标记将其包含在 HTML 中:

<script src="<url of combine.js>" type="text/javascript" />

然后,javascript 将在包含脚本标记的 HTML 中运行,就像您在示例中的脚本标记以及标记正文中的 javascript 代码一样。

注意,您可能希望将脚本标记放在页面底部以获得最佳性能。

就是这样,应该只是工作。如果没有,请检查 javascript 控制台是否有错误。

于 2013-07-21T19:37:20.003 回答