easyui中使用比较多的就是datagrid了,表格中添加连接,点击跳转,为比较常用的方式;往往在点及标签后调用getSeleted方法会失效;一.初始代码:{field: ‘id’,title : ‘操作’,align: ‘center’,width:’10%’, formatter:function(value,row){ return “<a onclick=’show()’ > 查看 </a>”; }},function show(){ var select = $(‘#targetTable’).datagrid(“getSelected”); var selects = $(‘#targetTable’).datagrid(“getSelections”); /*获取不到正在点击的行*/}二.起因分析:easyui中只有在触发选中行之后调用,getSeleted 和 getSelections 才能取到对应的结果值;先触发a标签方法,还是先触发选择行,测试代码如下:{field: ‘id’,title : ‘操作’,align: ‘center’,width:’10%’, formatter:function(value,row){ return “<a onclick=’show()’ > 查看 </a>”; }},onClickRow : function(index,data){ alert(‘clickRow’);}function show(){ alert(“clickA”);}点击页面按钮后你会发现先调用的show方法,后触发的onClickRow事件,所以在show方法中想要获取选中的行是不可行的方式;三.解决方式:在调用的时候进行值得传递;在进行a标签拼接的过程中在对应的方法中传入参数;四.解决代码如下:{field: ‘id’,title : ‘操作’,align: ‘center’,width:’10%’, formatter:function(value,row){ return “<a onclick=\”show(‘”+row.id+”‘)\” > 查看 </a>”; }},function show(id){ alert(id);
}五.备注:因使用easyui不是太多,更多的时候是帮别人解决问题的时候遇到测试的,以上观点只为个人观点,非最优解决方案,欢迎大神给出更优解决方案,多多交流才有进步;有新问题请留言,大家一起探讨一起进步;