ajax日历导航与jquery

时间:2009-09-25 17:28:12

标签: php javascript jquery ajax javascript-events

我在html中有下一个和上一个链接

<a href="/event-sort/calendar/2009/9/sports/">prev</a>
<a href="/event-sort/calendar/2009/11/sports/">next</a>

单击它们时,我希望页面进行ajax调用以加载将更新日历的html的php脚本

现在,当日历更新时,箭头已被删除并再次添加到dom中,因此我无法绑定这些事件

这就是我现在所拥有的

function url_to_array(string)
{
    var url = string;
    var url_array = url.split('/');
    return url_array;
}

function update_cal(evt)
{
    var url_array = url_to_array(evt.data);

    $('#master-calendar').css({
        background:'url(/images/ajax-load.gif) no-repeat left top',
        height:'600px'
    }).html('');

    $.get('/ajax_events.php',
        {
            view:url_array[2],
            year:url_array[3],
            month:url_array[4],
            category:url_array[5]
        },
        function(returned_data)
        {
            $('#content').html(returned_data);
            var element_id = $(evt.target).attr('id');
            var element_href = $('#' + element_id).attr('href');
            $('#' + element_id).unbind('click', update_cal).bind('click', element_href, update_cal);
        }
    );

    evt.preventDefault();
}   

//文件就绪 $(文件)。就绪(函数(){

var prev_link = $('#cal_nav_previous').attr('href');
$('#cal_nav_previous').bind('click', prev_link, update_cal);

var next_link = $('#cal_nav_next').attr('href');
$('#cal_nav_next').bind('click', next_link, update_cal);

}); //结束文件准备

我真的想为我的下一个和上一个按钮使用一个update_cal函数

我希望日历可以通过js访问,这就是网址中hrefs和日期编号的原因,任何帮助都会受到赞赏

我曾经尝试过jquery现场活动,但没有取得多大成功

我可以一次将update_cal函数绑定到下一个和上一个链接吗?

1 个答案:

答案 0 :(得分:2)

这里似乎有几个问题,所以我会尝试回答其中的一些问题。

要避免链接的默认行为,您可以使用jquery:

$('a').click(function(event){
    event.preventDefault();
});

当然你必须指定正确的链接......

要将链接中的变量传递给您的脚本,您可以使用rel属性:

<a href="/event-sort/calendar/2009/9/sports/" rel="200909">prev</a>
<a href="/event-sort/calendar/2009/11/sports/" rel="200911">next</a>

并使用jquery读取rel属性。

要自动绑定事件,您可以将绑定部分放在ajax_events.php脚本中

看起来如此,或者我错过了什么?

顺便说一句,我试图计算我的答案,但这会弄乱代码,所以大胆的是......