【问题标题】:javascript syntax with jQuery [duplicate]带有jQuery的javascript语法[重复]
【发布时间】:2011-10-29 09:27:01
【问题描述】:

可能重复:
What do parentheses surrounding a JavaScript object/function/class declaration mean?
What does this JavaScript/jQuery syntax mean?

这是一个开源的 jQuery 弹出库。

有人解释一下代码吗?

(function($){...})(jQuery);

简称()();?

这是什么语法?

如何在代码外调用close_model

这是我的用法:

$(function() {
    $("#leanModal").leanModal({top:200});
});

$(function(){...});//again what's this syntax?

代码:

(function($) {

    $.fn.extend({

        leanModal: function(options) {

            var defaults = {
                top: 100,
                overlay: 0.5
            }

            options = $.extend(defaults, options);

            return this.each(function() {

                var o = options;

                $(this).click(function(e) {

                    var overlay = $("<div id='lean_overlay'></div>");

                    var modal_id = $(this).attr("href");

                    $("body").append(overlay);

                    $("#lean_overlay").click(function() {
                        close_modal(modal_id);
                    });

                    var modal_height = $(modal_id).outerHeight();
                    var modal_width = $(modal_id).outerWidth();

                    $('#lean_overlay').css({
                        'display': 'block',
                        opacity: 0
                    });

                    $('#lean_overlay').fadeTo(200, o.overlay);

                    $(modal_id).css({

                        'display': 'block',
                        'position': 'fixed',
                        'opacity': 0,
                        'z-index': 11000,
                        'left': 50 + '%',
                        'margin-left': -(modal_width / 2) + "px",
                        'top': o.top + "px"

                    });

                    $(modal_id).fadeTo(200, 1);

                    e.preventDefault();

                });

            });

            function close_modal(modal_id) {

                $("#lean_overlay").fadeOut(200);

                $(modal_id).css({
                    'display': 'none'
                });

            }

        }
    });

})(jQuery);

【问题讨论】:

标签: javascript jquery


【解决方案1】:

(function ($) {})(jQuery); 在这里解释:

Plugins/Authoring jQuery.com

在“入门”部分。如果你想了解 jQuery 插件开发,你绝对应该读一读。

至于您的第二个查询,close_modal 是一个 私有函数,无法从闭包外部访问。它仅供插件使用。您可以在leanModal 函数中看到,只要用户单击#lean_overlay 项,就会调用它。如果我对插件的理解正确,你应该不需要自己打电话给close_modal

【讨论】:

  • 谢谢,我很少做js编码,不熟悉leanModal,我想要的效果是:当我的ajax响应时,我应该关闭之前的弹出表单。并显示另一个弹出窗口告诉成功或错误。
猜你喜欢
  • 2020-06-01
  • 1970-01-01
  • 2011-03-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-01
  • 2018-12-07
  • 2016-07-11
  • 2011-05-30
相关资源
最近更新 更多