4

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

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

例如,这是来自 jquery 文件上传插件的代码

 // 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);
                    }
                );
            },

我不知道到底发生了什么,为什么函数名以下划线开头。所做的就是做的一切。

我在哪里可以找到用示例充分解释的那种东西,这样我也可以减少我的代码

4

1 回答 1

2

我是这样理解的:

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

var that是当量。到:

返回元素的命名数据存储中的值,由 jQuery.data(element, name, value) 设置,或元素的完整数据存储。

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

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

最后,我们调用done我猜是 eq 的函数。到jQuery.ajax().done(),在成功的 Ajax 请求后调用。里面完成了匿名函数的另一个回调

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

在哪里触发了另一个_trigger用字符串started调用的函数和主函数 start 的回调事件e

And answer for your last question:

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

The truth is that without writting own stuff, you'll probably never learn that. Experience and coding is the key here. By searching for certain solutions, you'll find out new stuff like this one for example. So keep coding mate!

于 2012-10-15T09:05:59.717 回答