说不太清楚,用图片来说明下我的问题。。。。也不知道,你们能看懂不。。
因为是回调函数的原因。 ajax请求是异步请求,返回结果后会优先执行回调函数function(data){} 这一块里的代码。而不在这个回调函数里的代码则会在执行ajax请求的同时执行。所以你把showDetail放到下面的时候,ajax函数内部还没有执行完成,造成执行showDetail的获取不到请求的数据。
我看懂了,但是你想干嘛
差个分号吧,加上应该就行了
你调试看看啊。你 post 完之后就 执行 ShowDetail
做个参数,选出新元素传递进去,你那样如果调用多次ShowAllList就会绑定多次click事件
function ShowAllList() {
$.post('xxxx', {}, function (data) {
var s = '';
//.....
for(..)
s+='<tr>.....</tr>';//连接在一起先
ShowDetail($(s).appendTo('xxx').find('a.detail'))//统一添加然后选出a绑定事件
})
}
function ShowDetail(objs) {
//objs.click(..你原来代码...)
}