2016-12-24 76 views
0

我不是很擅长JavaScript,这就是为什么我依赖jquery插件进行大部分工作的原因。然而,很多时候,他们中的两个人相互冲突,一个/两个人停止正常工作或根本不工作。所以我将其中的一个取消其中的一个,并重命名其中的所有/大部分变量和函数。有时候这种方式有效,有时不起作用,并且根据文件大小的不同,可能需要几个小时才能完成,这是非常尴尬和令人厌烦的。有没有更简单实用的捷径方法来做到这一点?有没有一种快捷方法来防止两个单独的javascript/jquery相互冲突或相互影响?

+0

请将你的代码发布到问题出现的地方。 –

+0

整个jquery插件? –

+0

我会建议寻找更好的插件,如果这是一个问题。 jQuery的大多数众所周知/优秀的插件可与其他插件一起使用,并且没有重叠/交叉污染。 – junkfoodjunkie

回答

1

你应该在其最基本的形式使用模块模式如果插件的作者并没有意识到这一点:

(function($) { 
    // Define here the whole plugin code 
    // Functions create scopes. Anything declared witihn 
    // this immediately-invoked function expression (IIFE) 
    // will be local and it won't conflict with other plugins 
}(jQuery); 

看到这个其他Q &一个了解什么是一个IIFE:What is the (function() { })() construct in JavaScript?

此外,这个Q & A可能是你感兴趣的:why module pattern?

+0

不介意我的问题,但我该如何给这个函数一个名字并声明它 –

+0

@UsmanSikander haha​​ha,没问题;)它的目的不是拥有一个名字。这是一个匿名函数。一旦它被定义,你就调用它。 –

+0

@UsmanSikander是啊!我很高兴它在你的情况下工作;) –