开发者社区> 问答> 正文

有关请求ajax后怎么在内部使用点击事件 400 请求报错 

@Kener-林峰 你好,想跟你请教个问题:

你好,想请教个问题,请问下怎么在ajax内部使用点击事件,静态数据写了个Test可以实现点击事件,但通过ajax获取后台数据,这个怎么去使用点击事件
$.ajax({ type : "post", dataType : 'json', url : '../../report/vacancyratereport.do', data : { 'jsonStr' : jsonStr }, complete : function() { }, success : function(data) { if (shopq[index] == "shopquantity") { option.title.text = "Vacancy Rate Report/(Shops Quantity)"; } else { option.title.text = "Vacancy Rate Report/(GLA)"; } option.title.subtext = lstSubText[index]; option.xAxis[0].data = data.xAxis; option.series[0].data = data.series;

myChart = echarts.init($("#result" + index)[0]); echarts.init($("#result" + index)[0]).setOption(option); var ecConfig = require('echarts/config');    myChart.on(ecConfig.EVENT.CLICK, eConsole);     function eConsole(param) {     alert(param.dataIndex+ "---"+ param.name);    } }, error : function(XMLHttpRequest,textStatus, errorThrown) { } })

展开
收起
kun坤 2020-05-29 11:50:38 545 0
1 条回答
写回答
取消 提交回答
  • 直接将写 的 ajax 函数,放入 click function 就可以了 ######

    引用来自“静心天涯”的评论

    直接将写 的 ajax 函数,放入 click function 就可以了 额,用这段代码

    var ecConfig = require('echarts/config');

       myChart.on(ecConfig.EVENT.CLICK, eConsole); 

       function eConsole(param) {

        alert(param.dataIndex+ "---"+ param.name);

       }

    }

    在ajax结束后出了方法块貌似就没用了...怎么解决?

    ######你是添加事件,还是触发事件??######给ajax加个sync=false参数######貌似还是不行...######

    function ajxFun () { jQuery.ajax({ url: '/path/to/file', type: 'POST', dataType: 'xml/html/script/json/jsonp', data: {param1: 'value1'}, complete: function(xhr, textStatus) { //called when complete }, success: function(data, textStatus, xhr) { var elem = $('<li></li>'); elem.click(clickFun); $('ul').append(elem); }, error: function(xhr, textStatus, errorThrown) { //called when there is an error } }); }

    	function clickFun () {
    		alert("li 的点击事件。");
    	}</pre> 
    

    不知道有没有写错,大概就这个样子

    ######

    引用来自“静心天涯”的评论

    function ajxFun () {
    			jQuery.ajax({
    			  url: '/path/to/file',
    			  type: 'POST',
    			  dataType: 'xml/html/script/json/jsonp',
    			  data: {param1: 'value1'},
    			  complete: function(xhr, textStatus) {
    			    //called when complete
    			  },
    			  success: function(data, textStatus, xhr) {
    			    var elem = $('<li></li>');
    			    elem.click(clickFun);
    			    $('ul').append(elem);
    			  },
    			  error: function(xhr, textStatus, errorThrown) {
    			    //called when there is an error
    			  }
    			});
    		}
    
    		function clickFun () {
    			alert("li 的点击事件。");
    		}

    不知道有没有写错,大概就这个样子

    echarts的事件绑定,我绑定了CLICK事件,但等AJAX结束后出了方法块事件就不会被触发了

    $(document).ready(function() {
    		// 模块引入,包引入方式
    		require.config({
    			packages: [
    			  {
    			      name: 'echarts',
    			      location:  '../../scripts/echarts/echarts',
    			      main: 'echarts'
    			  }
    			]
    		});
    		//动态加载echarts然后在回调函数中开始使用
    			require([ 'echarts'], function(ec) {
    				var echart = ec;
    			
    				var option = getOption();
    				option.title.text = "Vacancy Rate Report/(GLA)";
    
    				var myChart = echarts.init($("#result0"));
    				myChart.setOption(option);
    				var ecConfig = require('echarts/config');
    			    myChart.on(ecConfig.EVENT.CLICK, eConsole); 
    			    function eConsole(param) {
    			    	alert(param.name);
    			    }
    			});
    		});

    但是通过这种静态数据的方式是可以实现,这个应该怎么去实现..

    2020-05-29 11:50:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载