关于jQuery方法的位置的问题,

说不太清楚,用图片来说明下我的问题。。。。也不知道,你们能看懂不。。图片

因为是回调函数的原因。 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(..你原来代码...)
    }