我怎样才能理解高级jquery概念

时间:2012-10-15 08:55:59

标签: javascript jquery

每当我看到插件的任何代码时,我都无法理解80%的代码。 我也知道一些jquery并且已经成功了但是我找不到那些他们在插件中做过的事情。

通常是我在10行中执行的代码,它们使用高级方法执行一些快捷方式并在1中完成。

例如,这是来自jquery fileupload插件的代码

 // Callback for uploads start, equivalent to the global ajaxStart event:
            start: function (e) {
                var that = $(this).data('fileupload');
                that._transition($(this).find('.fileupload-progress')).done(
                    function () {
                        that._trigger('started', e);
                    }
                );
            },

我不知道到底发生了什么,为什么函数名称以下划线开头。做了什么以及所有这些。

我可以通过示例找到完全解释的那种东西,这样我也可以减少我的代码

1 个答案:

答案 0 :(得分:2)

这就是我理解的方式:

start是回调函数,评论说Callback for uploads start, equivalent to the global ajaxStart event

var that是eq。到:

Returns value at named data store for the element, as set by jQuery.data(element, name, value), or the full data store for the element.

当设置变量that时,会调用名为_transition的函数,我猜这是Ajax调用的一些扩展,因为我们稍后会调用done函数。可能作者拥有工作,因此您需要搜索代码。

此函数作为$(this).find('.fileupload-progress')选择器返回的参数对象列表。

最后,我们调用done函数,我猜是eq。 to jQuery.ajax().done(),在成功的Ajax请求之后调用。在内部完成后,还有另一个匿名函数回调

.done(function(){
    ....
}) 

在哪里发起了另一个名为_trigger的函数,字符串为started,主函数的回调事件为e

并回答您的上一个问题:

Where i can find that sort of stuff fully explained with examples so that i can also reduce my code?

事实是,如果不写自己的东西,你可能永远都不会知道。经验和编码是关键。通过搜索某些解决方案,你会发现像这样的新东西。所以保持编码伴侣!