2010-07-11 56 views
3

我正在写一个书签,我想使用jquery窗体插件。jquery窗体插件noConflict问题

我遇到的问题是,可能使用书签的网页可能正在使用不同的js库,它已经使用'$'。没问题,我可以告诉jQuery使用noConflict()

但是,jQuery的表单插件也使用'$',我无法控制。有没有办法让我指定这个插件不使用$并使用jQuery?

更多细节..

由于TNI表明,我可能会被误解的问题。

这是我做的

我使用Safari 5。这里是我做 (jQuery的已经加载) ....

var scriptElem = docEl.createElement('script'); 
scriptElem.setAttribute('src',"http://localhost:81/p/a2b/jquery.form.js"); 
scriptElem.setAttribute('type','text/javascript'); 
document.getElementsByTagName('head')[0].appendChild(scriptElem); 

然后

jQuery(docEl).ready(function() { 
    jQuery('#a2b_cart').ajaxForm(function() { alert (" yo");}); 

});

我看到了JavaScript控制台上什么:

jQuery("#a2b_cart").ajaxForm is not a function 
+0

脚本中'docEl'和'document'有什么区别?你用'docEl'创建元素,然后将它附加到'document'。他们不平等吗? – 2010-07-12 00:02:01

回答

2

很可能,初始化表单的代码在添加script元素后立即调用,但在加载之前调用。由于jQuery是已经加载,通过getScript调用表单文件:脚本文件加载

jQuery.getScript("http://localhost:81/p/a2b/jquery.form.js", function() { 
    jQuery('#a2b_cart').ajaxForm(function() { alert("yo"); }); 

    // Rest of your code here, or call out to another function 
}); 

// Don't place code here, form.js hasn't loaded yet. 

回调函数将只运行。

+0

感谢Doug(和TNi)。这是问题所在 – 2010-07-12 00:34:52

2

Form Plugin使用一种技术,允许它自己的代码中使用$本地而不到jQuery.noConflict()任何呼叫冲突。

当您设置要由插件处理的表单时,请使用jQuery代替$。如果问题仍然存在,我们需要查看特定代码才能提供帮助。

+0

TNi, 感谢您的回应。我增加了更多细节。根据您提供的信息,我可能会遇到不同的问题。 – 2010-07-11 23:44:15