为什么我给按钮绑定单击事件的时候,执行的时候它不用单击自动执行呢?

皇甫嗷嗷叫 发布于 01/31 17:34
阅读 153
收藏 0

重点就是绑定单击事件那一块,一旦执行我发现,单击没有任何反应,但是页面加载的时候会自动执行,然后输出数据,想问下各位神仙大爷,是那的问题啊? 

$.ajax({
        url : contextPath + '/base/trust/query',
        cache : false,
        method : 'POST',
        dataType : 'json',
        data : {
          query : queryButton,
        },
        success : function(ret) {
        	var flag = false;
        	//判断数据体内是否有未禁用的未过期的数据
        	for(var i = 0,j=0;i<ret.data.length;i++){
    			if(ret.data[i].note == '1' && ret.data[i].finishdate>new Date().getTime()){
    				licenseMsg[j] = ret.data[i];
    				j++;
    			}
    		}
        	if(licenseMsg.length>0){
        		document.getElementById("licenseButtonBySpan").style.display= 'inline';
            	//开始判断内容,如果授权人信息不为空则向div追加按钮
        		for(var i = 0;i<licenseMsg.length;i++){
        			var bt =document.createElement("button");
        			bt.innerHTML = licenseMsg[i].trustorname; 
        			var data = licenseMsg[i];
        			//绑定点击事件
        			bt.onclick = test(data);
        		    document.getElementById("licenseDivById").appendChild(bt);
        		}
        	}
		}
      });
	
	function test(data) {
		console.log(data.trustor)
		/*filters.push({
	        name : 'account',
	        op : 'eq',
	        stringValue : data.trustor
	    });*/
     };

 

加载中
0
咻咻秀秀修
咻咻秀秀修

bt.onclick = test(data);

这里的代码的意思是,执行test方法,传递data作为参数,将test方法的返回值赋予bt.onclick.所以,你懂了吗?

你已经用到了jQuery,就用jQuery来绑定事件呗.

$(bt).on('click',function(){test(data);});

皇甫嗷嗷叫
谢谢大佬
0
皇甫嗷嗷叫

引用来自“咻咻秀秀修”的评论

bt.onclick = test(data);

这里的代码的意思是,执行test方法,传递data作为参数,将test方法的返回值赋予bt.onclick.所以,你懂了吗?

你已经用到了jQuery,就用jQuery来绑定事件呗.

$(bt).on('click',function(){test(data);});

解决了,感谢 

$.ajax({
        url : contextPath + '/base/trust/query',
        cache : false,
        method : 'POST',
        dataType : 'json',
        data : {
          query : queryButton,
        },
        success : function(ret) {
        	var flag = false;
        	//判断数据体内是否有未禁用的未过期的数据
        	for(var i = 0,j=0;i<ret.data.length;i++){
    			if(ret.data[i].note == '1' && ret.data[i].finishdate>new Date().getTime()){
    				licenseMsg[j] = ret.data[i];
    				j++;
    			}
    		}
        	if(licenseMsg.length>0){
        		document.getElementById("licenseButtonBySpan").style.display= 'inline';
            	//开始判断内容,如果授权人信息不为空则向div追加按钮
        		for(var i = 0;i<licenseMsg.length;i++){
        			var bt =document.createElement("button");
        			bt.innerHTML = licenseMsg[i].trustorname; 
        			var data = licenseMsg[i];
        			//绑定点击事件
        			$(bt).on('click',function(){
        				test(data);
        			});
        		    document.getElementById("licenseDivById").appendChild(bt);
        		}
        	}
		}
      });
	
	function test(data) {
		console.log(data.trustor)
		/*filters.push({
	        name : 'account',
	        op : 'eq',
	        stringValue : data.trustor
	    });*/
	 };

 

返回顶部
顶部