以下是我代码:<a class="colorTwo" href="javascript;" onclick="SetData(' + data.setid + ');return false;">设置</a>
//修改链接 事件
    function SetData(uid) {
    
 
        $("#edit").dialog("open");
        
        $("#btn_add").attr("onclick", "Add(" + uid + "); return false;");
}  
 function Add(uid) {      alert('aaa');
}html:<div id="edit" class="easyui-dialog" title="设置" style="width: 220px; height: 170px;"
        modal="true" closed="true" buttons="#edit-buttons">
          <form id="form_edit" name="form_edit" method="post" url="u.aspx">
        <table class="table_edit">
            <tr>
                <td class="tdal"> 
                   <input id="MsetArea" name="SetArea" type="radio" value="99" />
                </td>
                <td class="tdar">
                    设置
                </td>
            </tr>
           </table>
        </form>
    </div>
    <div id="edit-buttons">
        <a id="btn_add" href="javascript:;" class="easyui-linkbutton">提交</a> 
        <a href="javascript:;" class="easyui-linkbutton"
            onclick="$('#edit').dialog('close');return false;">取消</a>
    </div>
我点击提交后为什么:$("#btn_add").attr("onclick", "Add(" + uid + "); return false;");这句代码在 ie 浏览器下不触发  弹出 aaa?可在火狐谷歌浏览器可以正常运行,请问应该怎么兼容ie浏览器?谢谢!

解决方案 »

  1.   

    $("#btn_add").click(function(){
     Add(uid); 
    })
      

  2.   

      function SetData(uid) {
       
     
      $("#edit").dialog("open");
       
      $("#btn_add").click(function(){
           Add(uid);
      });
    }  
     function Add(uid) {  alert('aaa');
    }
      

  3.   

     $("#btn_add").attr("onclick", "Add(" + uid + "); return false;");=====这里没必要修改属性方法,直接绑定click不就行了。<a class="colorTwo" id="tt" href="javascript:void(0)" onclick="SetData('a')">设置</a>
    <script type="text/javascript">
    function SetData(s){
        //do something
        alert("第一次点击");
        $("#tt").removeAttr("onclick").html("提交").bind("click",function(){
            alert("不是第一次点击了!");
        });
    }
    </script>不过IE下有点鬼,bind事件提前触发。所以改一下:function SetData(s){
        //do something
        alert("第一次点击");
        $("#tt").removeAttr("onclick");
        setTimeout(function(){
            $("#tt").html("提交").bind("click",function(){
                alert("不是第一次点击了!");
            });
        },200)
    }延时绑定就正常了:)
      

  4.   


    谢谢 我想问这两句有什么区别?
    $("#btn_add").click(function(){
     Add(uid);  
    $("#btn_add").attr("onclick", "Add(" + uid + "); return false;");})
      

  5.   

    第一句你可以看成是绑定对象的click事件第二句是给对象附加一个onclick属性,其值为Add(uid),就好比你一个按钮,一开始是没有设置onclick属性的,但是你这句运行过后将会使其附加onclick <input type="button" onclick="Add('uid的值')">两个最后的运行效果是一样的你那句:$("#btn_add").attr("onclick", "Add('" + uid + "'); return false;");
    有可能是因为uid取值的问题吧