zoukankan      html  css  js  c++  java
  • 坑爹的javascript,技巧!技巧!

     1       interval =setInterval(sendMessage,3000);
     2      function sendMessage(){
     3          //每隔5妙中向服务器发送ajax 请求
     4          $.post(
     5                  "test",
     6                  {"city[0]":'shanghai',"city[1]":'beijing',"city[2]":'chengdu'}
     7                  ,function(result){
     8                     // $("#username-input").val(result);
     9                      console.log(result);
    10                     result = eval("("+result+")");
    11                      console.log(result);
    12                      $("#price-shanghai").html(result.city[0]) ;
    13                      $("#price-beijing").html(result.city[1])
    14                      $("#price-chengdu").html(result.city[2]);
    15          });
    16      }
    setInterval的函数名称不能跟上()否则只能执行一次,被坑惨了!!补充这是因为函数的作用域的问题
    关于对代码的封装
      1、原则上每个方法只能做一件事情,并且经过测试。
      2、使用对象的方法封装成属性和方法的形式
      
    1 var Obj = {
    2     var a;
    3     var b = function(){
    4       ...
    5   }   
    6 
    7 }

     调用就使用obj.b()

      3、封装jquery 插件

      

     1 // plugin definition    
     2 $.fn.hilight = function(options) {    
     3   var defaults = {    
     4     foreground: 'red',    
     5     background: 'yellow'    
     6   };    
     7   // Extend our default options with those provided.    
     8   var opts = $.extend(defaults, options);    
     9   // Our plugin implementation code goes here.    
    10 };    
    11 我们的插件可以这样被调用:  
    12 $('#myDiv').hilight({    
    13   foreground: 'blue'    
    14 }); 

      有两种封装的方式:

      

    jQuery为开发插件提拱了两个方法,分别是:

    jQuery.fn.extend(object);  给jQuery对象添加方法。
    jQuery.extend(object);  为扩展jQuery类本身.为类添加新的方法。

    一个方法名代表的是这个方法的指针位置,加上括号如functionName()就是执行这个方法。

    绑定事件要注意是否已经存在这个元素,不存在使用live()方法

    一个方法直接写方法名,意思是这个方法的指针位置;加上括号那就是马上执行这个方法
     
     清除事件队列的方法

      $('.stop').live('click',function(){
        $('.box').clearQueue('slideList');
      })

      mouseover 和mouseenter的区别为,mousenter不会冒泡,也就是如果被子元素挡住了就不会被触发,mouseover就会被触发。就这么简单

      如果表单 设置了 

    auto; 

    会造成无法提交

  • 相关阅读:
    P3224 [HNOI2012]永无乡(平衡树合并)
    jquery的队列问题
    值得以后看的东西
    js的>>>
    js的set和get
    js数组的操作方法
    中文冒号检查了两个小时
    setintervalue传参数的三种方法
    js轮训
    npm全局安装
  • 原文地址:https://www.cnblogs.com/linksgo2011/p/2820554.html
Copyright © 2011-2022 走看看