Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 Garmin prototype.js与本地jquery文件冲突_Javascript_Jquery_Garmin - Fatal编程技术网

Javascript Garmin prototype.js与本地jquery文件冲突

Javascript Garmin prototype.js与本地jquery文件冲突,javascript,jquery,garmin,Javascript,Jquery,Garmin,我有来自Garmin的prototype.js,它与我的jquery.frm.js冲突,如下面的代码片段所述 <script src="/public/js/jquery-ui-1.8.16.custom.min.js"></script> <script type="text/javascript" src="/public/js/jquery.frm.js"></script> <script type="text/javascript"

我有来自Garmin的prototype.js,它与我的jquery.frm.js冲突,如下面的代码片段所述

<script src="/public/js/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript" src="/public/js/jquery.frm.js"></script>
<script type="text/javascript" src="http://developer.garmin.com/web/communicator-api/prototype/prototype.js"></script>

它将抛出一个错误“UncaughtTypeError:undefined不是一个函数-jquery.frm.js” 下面是jquery.frm.js代码的一小段(因为太长了!)

var框架_PREFIX=“erpFrm”;
(函数($){
$.frm={
优先接受:新数组(0,1,2,3,4,5,6,7,8,9),
initFunctions:new Array(),
_孤岛加载:false,
/*
*分页变量
*/
当前页面:0,
物品价格:100,
分页偏移:3,
/*
*用于定义快速快进
*/
步幅:6,
选项:{},
秀:没错,
/**
*已加载运行页面的初始化函数
*@returns{undefined}
*/
init:function(){
for(var i=0;i
实际上document.ready不执行!这怎么可能

基本上,我尝试了两种解决方案——它们都应该在jquery.frm.js中加载脚本和代码,这就是为什么我在函数中调用脚本或在noConflict之后调用脚本

第一种解决方案

<script>
    (function($) {
        $.getScript('/public/js/jquery.frm.js').done(function(script, textStatus) {
           console.log(textStatus);
        }).fail(function(jqxhr, settings, exception) {
           console.log(exception);
        });
    })(jQuery);
</script>

(函数($){
$.getScript('/public/js/jquery.frm.js').done(函数(脚本,textStatus){
console.log(textStatus);
}).失败(功能(jqxhr、设置、异常){
console.log(异常);
});
})(jQuery);
此代码仍将返回相同的错误-undefined不是函数

第二种解决方案

<script>
    jQuery.noConflict();
    jQuery(document).ready(function($){
        $.getScript('/public/js/jquery.frm.js').done(function(script, textStatus) {
            console.log(textStatus);
        }).fail(function(jqxhr, settings, exception) {
            console.log(exception);
        });
    });
</script>

jQuery.noConflict();
jQuery(文档).ready(函数($){
$.getScript('/public/js/jquery.frm.js').done(函数(脚本,textStatus){
console.log(textStatus);
}).失败(功能(jqxhr、设置、异常){
console.log(异常);
});
});
同样的错误仍然存在


请给我一些关于如何解决问题的见解。

您可以创建jQuery的别名并在脚本中使用。下面的示例代码取自。希望这能解决您的问题

var j = jQuery.noConflict();

// Do something with jQuery
j( "div p" ).hide();

// Do something with another library's $()
$( "content" ).style.display = "none";

在脚本代码的顶部,使用
jQuery.noConflict()
释放
$
以供其他脚本使用,在本例中为prototype.js代码。有关详细信息,请参阅jQuery noConflict文档:

(开始个人意见)我不建议简单地将jQuery分配给另一个短别名。每个人都想使用的这些JavaScript别名就像非常短的、糟糕的变量名。大多数开发人员建议在大多数情况下避免使用诸如“x”和“y”之类的变量名,尤其是当变量的作用域非常大时。使用“$”或“j”作为jQuery会使您的source更短,但这真的那么重要吗?在生产中使用之前,只需将代码运行到最小值即可

var j = jQuery.noConflict();

// Do something with jQuery
j( "div p" ).hide();

// Do something with another library's $()
$( "content" ).style.display = "none";