jquery 怎么给超链接做提交

huijunliang 2012-09-07 02:04:11
以下是我代码:

<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浏览器?

谢谢!
...全文
480 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡鱼_ 2012-09-07
  • 打赏
  • 举报
回复
第一句你可以看成是绑定对象的click事件

第二句是给对象附加一个onclick属性,其值为Add(uid),就好比你一个按钮,一开始是没有设置onclick属性的,但是你这句运行过后将会使其附加onclick <input type="button" onclick="Add('uid的值')">

两个最后的运行效果是一样的

你那句:$("#btn_add").attr("onclick", "Add('" + uid + "'); return false;");
有可能是因为uid取值的问题吧
huijunliang 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
$("#btn_add").click(function(){
Add(uid);
})
[/Quote]

谢谢 我想问这两句有什么区别?


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


$("#btn_add").attr("onclick", "Add(" + uid + "); return false;");

})

scscms太阳光 2012-09-07
  • 打赏
  • 举报
回复
$("#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)
}
延时绑定就正常了:)
画龙添脚 2012-09-07
  • 打赏
  • 举报
回复
function SetData(uid) {


$("#edit").dialog("open");

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


function Add(uid) {

alert('aaa');
}
泡泡鱼_ 2012-09-07
  • 打赏
  • 举报
回复
$("#btn_add").click(function(){
Add(uid);
})

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧