关于使用jquery的问题

Littlebox 发布于 2016/10/22 20:12
阅读 156
收藏 0
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>用户列表</title>
<link rel="stylesheet" type="text/css" href="/easyui_day02/themes/default/easyui.css">   
<link rel="stylesheet" type="text/css" href="/easyui_day02/themes/icon.css">   
<script type="text/javascript" src="/easyui_day02/js/jquery-1.11.3.min.js"></script>  
<script type="text/javascript" src="/easyui_day02/js/jquery-migrate-1.2.1.min.js"></script>   
<script type="text/javascript" src="/easyui_day02/js/jquery.easyui.min.js"></script>  
<script type="text/javascript" src="/easyui_day02/js/easyui-lang-zh_CN.js"></script>
</head>
<body>
   <table id="dg" title="学生信息" class="easyui-datagrid"  
            url="/easyui_day02/exercise/p_data.json"  
            rownumbers="false" fitColumns="true" singleSelect="true" >  
        <thead>
            <tr>  
            <th data-options="checkbox:true,width:20"></th>
                <th data-options="field:'code',sortable:true,width:20">学号</th>  
                <th data-options="field:'name',width:20">姓名</th>  
                <th data-options="field:'salary',width:20">薪水</th>  
                <th data-options="field:'_operate',width:80,align:'center',formatter:formatOper">操作</th>  
            </tr>  
        </thead>  
    </table>  
<script type="text/javascript">
    $(function(){
            function formatOper(val,row,index){  
               return '<a  href="javascript:void()" class="easyui-linkbutton" >修改</a>';  
           }
      })
/* function formatOper(val,row,index){  
           return '<a  href="javascript:void()" class="easyui-linkbutton" >修改</a>';  
       } */
</script>
</body>

</html>

请问各位,为什么使用红色标注的jquery文档加载,最后不会生成a标签,而使用蓝色标注的脚本可以成功生成a标签?刚接触不就,望解答,谢谢哈。。。。。本来以为是由于前面调用了formatOper方法,如果使用$.(function(){}),那么调用的时候formatOper方法还没有定义,但是我将方法写成蓝色标注的部分,也是在方法调用之后再定义的,却可以成功生成a标签。

加载中
0
mark35
mark35
红色代码是在$(function(){}中定义的,只在$(function(){}这个匿名函数内有效,非全局函数
Littlebox
Littlebox
@mark35 回复@mark35 : 恩恩,谢谢哈。。。
mark35
mark35
回复 @Littlebox : 元素没生成前在该元素上面绑定事件是无效的。应该用代理方式绑定: $(document.body).on('click', 'a[name=name]', function() {// do something}); document.body可以换成元素的祖先元素(必须存在)
Littlebox
Littlebox
回复@mark35 :谢谢哈。再问一个问题哈,我想给这个a标签用jquery绑定点击事件, return '<a href="javascript:void()" class="easyui-linkbutton" name="name">修改</a>,$("a[name='name']").click()这样是绑定不了的,能怎么解决啊
Littlebox
Littlebox
好像真的是的哦,谢谢哈。。。。。
0
王桥修道院副院长
王桥修道院副院长

1.方法调用前后没有关系,只要找到对应函数即可 2.$(function(){})是初始化方法 在dom加载完执行  里面的函数作用域不是全局 所以找不到 蓝色的是定义全局函数 所以能找到

Littlebox
Littlebox
回复@花间_拾零 : 恩恩,楼上的也是这么说的,谢谢哈。。。。。
返回顶部
顶部