jquery Ajax:选择器作为函数param没有被记录?

时间:2011-08-10 21:58:55

标签: jquery ajax function parameters console

我不知道为什么这对我不起作用。

我在linkclick上调用了这个!

$('.pagination a').live('click', function(e) {
    e.preventDefault();
    var page = $(this).attr("data-ajax-link");

    //get classname of container box that should be reloaded
    var box = $(this).parent().parent();

    ajaxLoad(box, page, false);
    console.log(box); //takes some time as well! WHY?

});

这里是触发的功能。

function ajaxLoad(targetBox, loadUrl) {

    console.log('start');
    console.log($(targetBox));

    $.ajax({
        url: loadUrl,
        dataType: "html",
        success: function(html,status) {
            console.log('end');

我没有得到的奇怪的事情是我的控制台中会立即记录console.log('start'),但在ajax功能成功返回之前,console.log($(targetBox));不会出现在控制台中!

为什么?有什么想法吗?

这是触发该功能的HTML。

<div class="list wide">        
     <div class="pagination">
          <span>&lt;</span>
          <em>[1]</em>
          <a data-ajax-link="/ajax/render/project/my?page=2" rel="next" href="/my/project/2">2</a>
          <a data-ajax-link="/ajax/render/project/my?page=2" rel="next" href="/my/project/2">&gt;</a>
     </div>
...

所以我用parent()选择的元素.parent()是div.list。所以当点击链接时,应立即记录.list。

1 个答案:

答案 0 :(得分:0)

在这个简单的例子中为我工作:

http://jsfiddle.net/vmkcG/

您可以更新以显示此内容吗?也就是说,在函数的上下文中显示它,它用于分配给框?