3

我正在编写一个书签,我想在其中使用 jquery 表单插件。

我遇到的问题是可能使用书签的网页可能正在使用不同的 js lib,它已经使用了“$”。没问题,我可以告诉 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
4

2 回答 2

2

表单插件使用一种技术,允许它在自己的代码中本地使用,而$不会与任何对jQuery.noConflict().

当您将表单设置为由插件处理时,只需使用jQuery. $如果问题仍然存在,我们将需要查看特定代码以获得帮助。

于 2010-07-11T22:44:08.263 回答
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.

回调函数只会在脚本文件加载后运行。

于 2010-07-11T23:59:57.597 回答