jquery中为什么超链接的click事件没反应?

function GetOrderCount() {
var html = "";
$.ajax({
dataType: "json",
url: "/AjaxRequest/ListBubbleByUserTest.cspx",
success: function(json) {
var recordNum = 0;
$.each(json, function(key, val) {
recordNum++;
//href='" + val.MsgUrl + "' target=_blank
html = html + " <a name='MsgUrl' rowid='" + val.ID + "'>" + val.BubbleTitle + "</a>";
});
if (html != "") {
$.messager.lays(300, 200);
$.messager.anim('fade', 2000);
$.messager.show('<font color=red>重磅消息</font>', html,0);
}
}

});
$("#message a[name]='MsgUrl' ").click(SetMsg);
}
//设置消息已读
function SetMsg() {
var msgID = $(this).attr("rowid");
alert(msgID);
if (msgID != "") {
$.ajax({
url: "/AjaxRequest/SetListMsg.cspx",
data: { msgID: msgIDs },
success: function(responseText) {
}
});
}
}

第1个回答  2013-12-09
你的a标签并没有指定href或者onclick属性。所以不能点追问

我是这样绑定事件的$("#message a[name]='MsgUrl' ").click(SetMsg); message是a标签外面的div,MsgUrl是a标签的name

追答

你调用$("#message a[name]='MsgUrl' ").click(SetMsg);的时候你的a标签还没创建吧?ajax
是异步执行的

追问

怎么做才能让a标签执行SetMsg()这个方法里面的json,并跳转到其他页面?

追答

最好在ajax的callback里处理结束最后添加click事件。。。

第2个回答  2013-12-09
$("#message a[name]='MsgUrl' ").live('click',function(){SetMsg()});追问

这样做拿不到rowid的值

追答

$(this)关键字只能用在事件里

追问

谢谢大侠!但是如何实现既能执行事件又能拿到rowid的值?

追答

$("#message a[name]='MsgUrl' ").click(SetMsg);

这个事件加一个存储
var $target;
$("#message a[name]='MsgUrl' ").click(function(){
$target = $(this);
SetMsg();
});
下面你就可以用$target了

追问

大侠,不行啊,我的这个是在一个循环里面,你给的解决方案适合单个的事件

追答

var $target; 做成全局的懂? 放到GetOrderCount之前。

追问

谢谢你,我解决了,直接在a标签里面加onclick事件传参数就可以。谢谢哦

第3个回答  2013-12-09
$("#message a[name='MsgUrl'] ")
相似回答
大家正在搜