EasyUi中的datagird中a标签的click事件无法触发?(已解决)
***************************2015-10-29 21:07*************************
问题如下:
datagrid最后一列编辑中有如下a标签
{ field: "编辑", title: "编辑", width: 100, align: "center", //value表示字段值,row表示当前行的值,index表示当前行的索引 formatter: function (value, row, index) { // var theHref = "<span class='deleteSpan' onclick='deleteStu("+row.id+")'>删除</span>"; var theHref = "<a stuName='"+row.stuName+"' class='delete' href='<%=basePath%>json/stu_delete.action?id=" + row.id + "'>删除</a>"; return theHref; }
但是我的方法就是触发不了,好奇怪的样子!?
问题记录在这里有时间来搞,现在换一种方法。
//点击删除发生的事件 $(".delete").click(function(){ ....... });
此版本相关代码:http://yunpan.cn/cFU6EL4jpLrXu 访问密码 2727
***************************2015-10-29 21:40*************************
在解决思路的过程中发现了如下问题:
若一个按钮绑定方法如果写在:$(function(){function(){xxxxxx}});外面,绑定的事件可能是无效的。
所以:需要外界调用的方法不能不能下载$(function(){mehtod...})里面。
这个其实很简单:绑定事件的时候可能元素还未被生成,所以说在元素绑定的时候,一定要在页面加载完成后进行。
***************************2015-10-30 20:52*************************
说明:不是因为click事件未触发,是触发了,然后马上页面跳转了,看出出来而已。
问题简化如下:
当时的html代码如下:
<a stuname="王华" onclick="myTest();;" href="http://localhost:8080/ssh_easyui/stu_delete.action?id=32434">删除</a>
在myTest中是如此写的
function myTest() { console.info("XXXXXXXXX"); return false; }
本意是在这个实际中阻断a标签的跳转,因为记得以前谁用过,隐约记得这个方法可以这么用。
但是今天才发现这个想法是错的,这样只是退出myTest这个方法无法阻断,解决方法应该写成:
<a stuname="王华" onclick="myTest();return false;" href="http://localhost:8080/ssh_easyui/json/stu_delete.action?id=32434">删除</a>
在myTest()的后面添加return false;才行。
上述问题Over。
综上总结如下:
1.a标签的阻止跳转是在click事件同级的后面添加return false;
2.不要忽略基础,基础很重要。
Doing is better than nothing