1

我有一个页面,其中显示多个带有结果详细信息的块。在每个块中,我都有一些<a>带有thickbox jQuery插件的标签:class="thickbox"

这是一种与符标记的示例:

<a class="thickbox" title="Please Sign In" href="userloginredir.php?height=220&width=350&deal=3">

当我向页面添加 jQuery 分页时出现问题,因为页面上显示的结果太多。内部带有结果的 div 组件通过 ajax load() 事件进行更新。

下面是分页脚本:

$(document).ready(function(){
    //References
    var pages = $("#menu_deals li");
    var loading = $("#loading_deals");
    var content = $("#content_deals");

    //show loading bar
    function showLoading(){
        loading
            .css({visibility:"visible"})
            .css({opacity:"1"})
            .css({display:"block"})
        ;
    }
    //hide loading bar
    function hideLoading(){
        loading.fadeTo(1000, 0);
    };


    //Manage click events
    pages.live('click',function(){
        //show the loading bar
        showLoading();

        //Highlight current page number
        pages.css({'background-color' : ''});
        $(this).css({'background-color' : 'yellow'});

        //Load content
        var pageNum = this.id;
        var targetUrl = "ajax_search_results.php?page=" + pageNum + "&" + $("#dealsForm").serialize() + " #content_d";
        content.load(targetUrl, hideLoading);
    });

    //default - 1st page
    $("#1").css({'background-color' : 'yellow'});
    var targetUrl = "ajax_search_results.php?page=1&" + $("#dealsForm").serialize() + " #content_d";
    showLoading();
    content.load(targetUrl, hideLoading);
});

当我添加分页(上面的代码)时,不再识别thickbox事件,而不是弹出一个带有登录表单的窗口,而是在新页面中打开结果(就像点击普通链接一样)根据我的jQuery知识这个表示组件未在 DOM 中定义,因为在触发文档就绪后更新内容。

我正在尝试将加载事件与以下内容绑定:

content.bind('load', ???);

但是我不知道在绑定加载事件时如何传递加载参数,targetUrl和回调函数hideLoading。

请在这件事上帮助我,我已经花了比可能允许的时间更多的时间。

4

2 回答 2

0
tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox

在ajax的回调中调用它。

于 2009-11-13T14:59:52.253 回答
0

您已将 hideLoading 函数用作回调,而是将其替换为您初始化厚盒并隐藏加载的地方。

content.load(targetURL, function(){ tb_init('a.thickbox'); hideLoading(); });
于 2009-11-14T05:31:10.767 回答