Nem*_*den 12 jquery namespaces jquery-plugins
我使用jquery expose插件和Masked Input插件遇到了问题.问题是它们都占据$.mask导致冲突的功能.但我非常需要这两个插件一起工作.我会$.mask在其中一个中重命名...让我们说,$.msk但是在这种情况下我总是需要记住它,如果我想升级到新版本,我会再次重命名.
寻找更好的解决方案,以解决jquery插件之间的这种冲突.
mu *_*ort 13
我认为您可以选择需要记住某些内容的解决方案,问题是您多久想要记住一次.
如果您重命名其中一个,那么您必须记住修补任何升级.我不认为这是一个大问题,它一直在软件开发中发生.
另一种方法是拉入其中一个插件,然后立即加载一个名称空间修补程序,例如,jQuery.fn.masked_input = jQuery.fn.mask;然后可以在此之后加载公开插件.只要重命名的插件在任何地方都没有引用自己的名称,这种方法就会起作用.而且,您必须记住插件的特定加载顺序.这种事情也一直在软件开发中发生.
小智 4
我想我同意mu的回答。一种补充可能是使用jQuery.sub()。
由于大多数插件在构建期间使用 jQuery 全局,因此您应该能够在加载插件之一之前为 jQuery 指定别名。然后您可以在之后为您选择的任何内容重新设置别名。
<script src="http://cdn.jquerytools.org/1.2.5/full/jquery.tools.min.js?foo"></script>
<script type="text/javascript">
var jQuery = $.sub();
</script>
<script src="jquery.maskedinput.js" type="text/javascript"></script>
<script type="text/javascript">
var $$$ = jQuery;
jQuery = $;
</script>
Run Code Online (Sandbox Code Playgroud)
这种方法唯一可能的优点是,它可以将一个插件与另一个插件可能对 jQuery 方法所做的更改隔离开来。它有点复杂,但这是我能想到的改变插件的唯一替代方法。