jquery 表单插件 noConflict 问题
我正在编写一个书签,我想在其中使用 jquery forms 插件。
我遇到的问题是,可能使用书签的网页可能使用不同的 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
I am writing a bookmarklet in which I want to use the jquery forms plugin.
The problem I am having is that a web page on which the bookmarklet might be used could be using a different js lib, which already uses '$'. No problem, I can tell jQuery to use noConflict()
However, the forms plugin of jQuery also uses '$' which I have no control over. Is there a way for me to specify to this plugin to not use $ and use jQuery instead?
More details..
As TNi suggests, I might be misunderstanding the problem.
Here is what I do
I am using Safari 5. Here is what I do
(jquery already loaded)
....
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);
and then
jQuery(docEl).ready(function() {
jQuery('#a2b_cart').ajaxForm(function () { alert (" yo");});
});
What I see on the javascript console:
jQuery("#a2b_cart").ajaxForm is not a function
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有可能,初始化表单的代码会在添加
script
元素之后、加载之前立即调用。由于 jQuery 已经加载,请通过getScript
调用表单文件:回调函数只有在脚本文件加载后才会运行。
Chances are, your code initializing the form is called immediately after adding the
script
element, but before it has loaded. Since jQuery is already loaded, call the forms file viagetScript
:The callback function will only be run once the script file has loaded.
表单插件 使用的技术允许其在本地使用
$
它自己的代码,不会与任何对jQuery.noConflict()
的调用发生冲突。当您设置由插件处理的表单时,只需使用
jQuery
代替$
即可。如果问题仍然存在,我们将需要查看特定代码才能提供帮助。The Form Plugin uses a technique that allows it to use
$
locally within its own code without conflicting with any calls tojQuery.noConflict()
.When you are setting up your form to be handled by the plugin, just use
jQuery
in place of$
. If the problem still persists, we will need to see specific code in order to help.