简单谈谈jQuery(function(){})与(function(){})(jQuery)

开发jQuery插件时总结的一些经验分享一下。

一、先看
jQuery(function(){ });
全写为
jQuery(document).ready(function(){ });

意义为在DOM加载完毕后执行了ready()方法。

二、再看
(function(){ })(jQuery);
其实际上是执行()(para)匿名方法,只不过是传递了jQuery对象。

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

这里实际上是匿名函数,如下:

function(arg){…}
这就定义了一个匿名函数,参数为arg

而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:
(function(arg){…})(param)
这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数

而(function($){…})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery
相当于funtion output(s){…};output(jQuery);或者var fn=function(s){…};fn(jQuery);

$(function(){…});

或者:

jQuery(function($) {

});

允许你绑定一个在DOM(不包含图片)文档载入完成后执行的函数。这个函数的作用如同$(document).ready()一样,只不过用这个函数时,需要把页面中所有需要在 DOM 加载完成时执行的$()操作符都包装到其中来。从技术上来说,这个函数是可链接的--但真正以这种方式链接的情况并不多。

全写是:
$(document).ready(function(){

});

三、总结

jQuery(function(){ });用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。
(function(){ })(jQuery);用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码请小心使用。

(0)

相关推荐

  • jQuery function的正确书写方法

    jQuery 正确的书写格式: 引入:<script src="/libs/jquery/jquery.js" type="text/javascript"></script> html写法: 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

  • Jquery中"$(document).ready(function(){ })"函数的使用详解

    Jquery是优秀的Javascrīpt框架,$是jquery库的申明,它很不稳定(我就常遇上),换一种稳定的写法jQuery.noConflict(); jQuery(document).ready(function(){}); 使用jQuery的好处是它包装了各种浏览器版本对DOM对象(javascript的DOM对象你应该知道吧,就是它了)的操作. 比如jquery写法:$("div p"); // (1)$("div.container"); // (2)$

  • 浅析jQuery(function(){})与(function(){})(jQuery)之间的区别

    Jquery是优秀的Javascrīpt框架.我们现在来讨论下在 Jquery 中两个页面载入后执行的函数. $(document).ready(function(){  // 在这里写你的代码...});在DOM加载完成时运行的代码 可以简写成 jQuery(function(){ }); (function($) {})(jQuery)什么意思?(function(){ })(jQuery); 其实际上是执行()(para)匿名方法,只不过是传递了jQuery对象. 相当于 function

  • jQuery中;function($,undefined) 前面的分号的用处

    ;(function($){$.extend($.fn... 一般在一些 JQuery 函数前面有分号,在前面加分号可以有多种用途: 1.防止多文件集成成一个文件后,高压缩出现语法错误. 2.这是一个匿名函数,一般js库都采用这种自执行的匿名函数来保护内部变量 (function(){})(). 3.因为undefined是window的属性,声明为局部变量之后,在函数中如果再有变量与undefined作比较的话,程序就可以不用搜索undefined到window,可以提高程序性能.

  • jQuery中isFunction方法的BUG修复

    jQuery 1.4 源码 449 行(core.js 431 行),判断是否为函数的方法如下(思路来源于 Douglas Crockford 的<The Miller Device>): isFunction: function( obj ) {    return toString.call(obj) === "[object Function]";}, 同时 jQuery 的作者也作了部分注释: See test/unit/core.js for details co

  • 解决jquery submit()提交表单提示:f[s] is not a function

    jquery submit()无法提交表单 报错:f[s] is not a function, js submit()无法提交表单 报错:document.getElementByIdx_x(...).submit is not a function 这2个错让人很无奈啊,语法没有任何错误,怎么能报错呢? 因为以前重来没有遇到过,这次是在改别人的代码,回头看了看代码,我靠原来有个按钮的name="submit",把它删掉就能正常提交表单了. 为什么呢?应该是一个type="

  • (function($){...})(jQuery)的意思

    这里实际上是匿名函数 function(arg){...} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即: (function(arg){...})(param) 这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数 而(function($){...})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery var fn = functio

  • jQuery中(function(){})()执行顺序的理解

    总体来说,顺序是这样的:先计算第一个小括号,发现里面的表达式是一个函数,返会该匿名函数的引用(指针),最后一个括号则是建立匿名函数的实参和并执行. 示例: 计算两个数之和. JavaScript: 复制代码 代码如下: (function sum(a,b){ //此处也可去掉sum,以匿名函数的形式出现 alert(a+b); })(7,8); C: 复制代码 代码如下: int sum(int a,int b){return a+b;} void main(){ int (*pt)(int,i

  • 简单谈谈jQuery(function(){})与(function(){})(jQuery)

    开发jQuery插件时总结的一些经验分享一下. 一.先看 jQuery(function(){ }); 全写为 jQuery(document).ready(function(){ }); 意义为在DOM加载完毕后执行了ready()方法. 二.再看 (function(){ })(jQuery): 其实际上是执行()(para)匿名方法,只不过是传递了jQuery对象. (function($) {-})(jQuery); 这里实际上是匿名函数,如下: function(arg){-} 这就定

  • 简单谈谈require模块化jquery和angular的问题

    require 模块化开发问题,正常自己写的模块 是exports 导出一个模块 //模块化引入jquery 不同和问题 require 引入jquery swiper .... 插件和库的时候需要 require.config({ baseUrl:"js/libs", //文件夹目录相对与html的位置 paths:{ 'jquery':"jquery-1.9.1" //插件或库的文件名 'swiper':"文件名/swiper" //当每个插

  • JavaScript的jQuery库中function的存在和参数问题

    jQuery function 参数传递 jQuery的function函数中使用外部变量: //如何取得i的变量 for(i=0;i<3;i++) { $.get("/test.html", function(data){ alert(i) }); } //使用闭包: for(i=0;i<3;i++) { (function(index){ $.get("/test.html", function(data){ alert(index) }); })(

  • jQuery实例—选项卡的简单实现(js源码和jQuery)

    分别利用javascript的源码和jQuery来实现一个简单的选项卡,对比各自的步骤. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &l

  • 简单易扩展可控性强的Jquery转盘抽奖程序

    基于Jquery的Javascript转盘抽奖程序,可以自定义抽奖界面,奖品数量.图片等,可控制中奖的奖品,抽奖转盘转动的速度和圈数. 在实际使用中,应当把概率放到后台程序中运算,以保证安全性和产生中奖奖品的可控性 Javascript代码: <script type="text/javascript"> var index = 1, //当前亮区位置 prevIndex = 14, //前一位置 Speed = 300, //初始速度 Time, //计时器 arr_le

  • jQuery弹层插件jquery.fancybox.js用法实例

    本文实例讲述了jQuery弹层插件jquery.fancybox.js用法.分享给大家供大家参考,具体如下: fancybox是jquery的插件,功能强大.支持对放大的图片添加阴影效果,对于一组相关的图片添加导航操作按纽,除了能展示层外,还可以展示iframed内容, 通过css订制样式.配合其他插件,能实现更旋的效果. 这里给出官方下载以及实例地址:http://fancyapps.com/fancybox/ 附带给出本站下载地址. 到目前为止,fancybox的最新版本2.1.5,调用方法

  • Jquery 分页插件之Jquery Pagination

    实用jQuery分页特效插件jquery.pagination.js,基于jQuery实现,可根据pageselectCallback函数callback调用通过ajax调用动态数据,目前的方法是生成JSON数据到JS文件,调用的数据是JSON格式数据,缺点是数据是一次性读出来的,效率会差些,插件支持众多参数的自定义配置功能,还是很不错的,大家可以根据自己的想法进行改进. 有同学问道jquery的简单分页插件,原来有同事写过一个简单[Javascript 使用回调函数的自定义分页插件--自带样式

  • JQuery 学习笔记01 JQuery初接触

    一.下载官方网址是http://jquery.com/官方下载地址:http://docs.jquery.com/Downloading_jQuery里边有当前版本和历史版本的下载,可以下载下来部署在自己的服务器上上面也有Google\Microsoft\jQuery的CDN(Content Delivery Network)地址,由于目前jQuery的广泛使用,选择CDN地址可以充分利用缓存和这些互联网大佬们的带宽和服务器资源.官网上下载有两种版本Compressed(Minified ver

  • jQuery源码分析之jQuery.fn.each与jQuery.each用法

    本文实例讲述了jQuery源码分析之jQuery.fn.each与jQuery.each用法.分享给大家供大家参考.具体分析如下: 先上例子,下面代码的作用是:对每个选中的div元素,都给它们添加一个red类 复制代码 代码如下: $('div').each(function(index, elem){       $(this).addClass('red'); } }); 上面用的的.each,即jQuery.fn.each,其内部是通过jQuery.each实现的 复制代码 代码如下: j

随机推荐