js函数之函数传参

前言


传字符串类型

函数不在拼接字符串里

这种是最常见的情况,不用多说。


函数在拼接字符串里

传递字符串变量时,要加双引号。不然会报错。


示例
case "risk":
		infoWindow = new AMap.InfoWindow({
			id : "infoWindow" + lastMarkerIndex,
			content : "

" + d._name + "  详情>

" + "
地址:" + d._address + "
联系人:" + d.CONTACT_NAME + "
联系电话:" + d.telephone + "" + "
登记时间:" + d.REG_DATE + "     " + "
", size : new AMap.Size(370, 0), autoMove : false, offset : new AMap.Pixel(0, -30) }); break;


传对象类型

函数不在拼接字符串里

可以直接传递对象变量。

示例






函数在拼接字符串里

如果直接传递的话,则会报错


示例
$(document).ready(function(){     
        var dd=[];
        for(var i=0;i<3;i++){
           var obj ={};
           obj.a='i'+i;
           obj.b='j'+i;
           dd.push(obj);
        }
        var html="aaaaa"; //会报错!
         
        $("#test").append(html);

});

function fn_test(b){
      for(var i=0;i




解决方法

1、事件函数放在拼接字符串外面
http://m.blog.csdn.net/blog/PZ0605/25626143
       js拼接字符串时,字符串的事件参数需要传对象或对象数组的处理方法
有时候在js拼接字符串时,需要传递对象或对象数组,这时候直接将事件拼接在html达不到想要的效果,如

$(document).ready(function(){     
   var dd=[];
        for(var i=0;i<3;i++){
           var obj ={};
           obj.a='i'+i;
           obj.b='j'+i;
           dd.push(obj);
        }
        var html="aaaaa";
         
         $("#test").append(html);

});

function fn_test(b){
      for(var i=0;iaaaaa");

      $("#test").append(html);
          html.click(function(){
             fn_test(dd);
          });
        });
    function fn_test(b){
      for(var i=0;iaaaaa";

      $("#test").append(html);
          $("testNode").bind("click",function(){
             fn_test(dd);
          });
        });
    function fn_test(b){
      for(var i=0;i




2、1解决方法不好的地方是,因为如果有很多个input需要绑定事件的话,这种方式就不太好用了。
待解决。

你可能感兴趣的:(js)