【问题标题】:Rails - jQuery plugin issue where the function is not loadedRails - 未加载函数的 jQuery 插件问题
【发布时间】:2012-08-31 20:25:11
【问题描述】:

我正在尝试使用 jQuery 插件,但似乎 Rails 工作方式中的某些东西或者“jquery-rails”gem 没有评估 $.fn。

例如,如果这是插件:

(function ($) {

    $.fn.jqzoom = function (options) {
    return this.each(function () {
        var node = this.nodeName.toLowerCase();
        if (node == 'a') {
            new jqzoom(this, options);
        }
    });
};

jqzoom = function (el, options) {
.....
}

})(jQuery);

经过挖掘,我发现即使我可以在 Safai 调试器中调用并获取 jqzoom,但 $.fn.jqzoom 只是未定义。如果我将 $.fn.jqzoom = function {...} 粘贴到调试器中,插件就可以工作!

里面有些东西不喜欢 $.fn....

帮助!请...

谢谢。

【问题讨论】:

    标签: jquery ruby-on-rails jquery-plugins


    【解决方案1】:

    jQuery.fn.jqzoom 是否未定义?如果不是(即实际上已定义),则您可能没有映射 $ -> jQuery。如果是这样,请确保您在调用 $.fn.anything 之前加载了 jQuery 缩小源代码,并且您应该已准备就绪。

    【讨论】:

    • 是的,jQuery.fn.jqzoom 是未定义的。我现在发现的是,如果我将所有插件代码粘贴到调试器 jQuery.fn.jqzoom 将被定义。也许是订购问题?
    • 我刚刚发现如果我在 jQuery.fn.jqzoom 中放置一个断点不会停止,但是如果我在父级 (function ($) { 函数中放置一个断点它会停止。所以该文件被调用,但 jQuery.fn.jqzoom 未被评估。
    • 好吧,如果我使用 javascript_include_tag 在视图中包含 JS 就可以了!那么为什么它不能使用资产树呢?有没有办法查看资产树的加载顺序?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多