坑爹的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; 

会造成无法提交

原文地址:https://www.cnblogs.com/linksgo2011/p/2820554.html