• JQuery Pagenation 知识点整理——(function($){...})应用(20150517)


    首先:(function($){...})为Jquery提供的匿名函数:

    代码实例(一)

    1 <script type="text/javascript">
    2             (function(name){
    3                 alert(name);
    4             })("GaoHuanjie");
    5         </script>

           上面代码中执行的JavaScript脚本和“(function($){...})(jQuery)”是一样的,也就是说“(function($){...})(jQuery)”中的函数会自动被执行,那么究竟该怎样理解“(function($){...})(jQuery)”呢?“(function($){...})(jQuery)”实际上表示的是已处于调用状态的匿名函数:function($){...}是定义的匿名函数,参数为$(之所以将参数声明为$是为了不与其他库冲突);为了调用该函数则在该匿名函数的后面添上了括号和实参(这里为jQuery),但又由于操作符的优先级,函数本身也需要用括号,所以又为匿名函数添加了括号。

    释疑解惑:

    一、我运行下面代码为什么报错——jQuery is not defined: 

    1 <script type="text/javascript">
    2             (function($){
    3                 alert($);
    4             })(jQuery);
    5         </script>

            浏览器在解析上述js脚本时确实会出现问题,假如为jQuery添加英文双引号,再次使用浏览器运行上述脚本则不会出错,为什么不加就会出错呢,呵呵呵,其实这里的jQuery还是一个变量,如果为上述代码引入jQuery库,再次使用浏览器运行上述代码则不会出现问题:

    1 <script type="text/javascript" src="./jquery-1.6.2.js"></script>
    2         
    3         <script type="text/javascript">
    4             (function($){
    5                 alert($);
    6             })(jQuery);
    7         </script>

    在引入jQuery库后之所以不会出错是因为jQuery库中定义了jQuery变量。

    二、和$(function(){ })相比,(function($){...})(jQuery)的执行时机也是在网页DOM加载完毕后才执行吗?

    不是的,比如如下例子:

    1 <script type="text/javascript">
    2             (function(){
    3                 alert(document.getElementById("name").value);
    4             })();
    5         </script>

    上述例子在浏览器中运行的时候会报错,究其原因(function(){...})()函数的执行时机并不是在DOM加载完毕后才执行,而是随着页面自上而下来执行,

    如果将其改成如下代码则再次使用浏览器运行脚本则不会出现问题:

     1  <html>
     2       
     3           <--此处为Html页面代码-->
     4         
     5           </--此处为Html页面代码-->    
     6          
     7          <script type="text/javascript">
     8              (function(){
     9                  alert(document.getElementById("name").value);
    10              })();
    11          </script>

    一句话:“$(function(){ });”用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在;“(function(){})(jQuery);”用于存放开发插件的代码,执行其中代码时DOM不一定存在。


    原文出处:http://www.2cto.com/kf/201407/321646.html
  • 相关阅读:
    正则匹配
    去除数组、对象某个元素
    换行
    a标签问题
    vue的坑
    宽度100%-20px ,css样式设置超出部分...
    搜狗密码框自带小键盘问题
    阻止button刷新页面
    Java IO流经典练习题
    Java中统计字符串中各个字符出现的次数
  • 原文地址:https://www.cnblogs.com/xiaoerlang90/p/4509140.html
Copyright © 2020-2023  润新知