javascript - 使用 jQuery 的 Ajax 日历导航

标签 javascript php jquery ajax jquery-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,因此我无法绑定(bind)这些事件。

这是我现在拥有的:

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();
    }   

// Document Ready
$(document).ready(function(){

    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);

});// End Document Ready

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

我希望可以使用 js 访问日历,这就是 url 中的 href 和日期数字的原因,我们将不胜感激。

我曾尝试过 jQuery 现场事件,但没有取得太大成功。

我可以同时将 update_cal 函数绑定(bind)到下一个和上一个链接吗?

最佳答案

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

要避免链接的默认行为,您可以使用 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 属性。

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

好像是这样,还是我漏掉了什么?

顺便说一句,我试图计算我的答案,但这弄乱了代码,它是如此大胆......

关于javascript - 使用 jQuery 的 Ajax 日历导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1478598/

相关文章:

php - 奇怪的问题 Doctrine/Symfony 请求

javascript - ASP.Net jQuery AJAX 调用不起作用

javascript - 无法设置 Kendo DropDownList 选定值

javascript - 在 Ajax .load 之前将事件绑定(bind)到要执行的 DOM 元素上

javascript - 放大使 `Failed to load resource: the server responded with a status of 400` 错误

javascript - 如何从 Socket.io 中的事件获取套接字 ID?

php - 使用PHP的“注意: undefined variable ”,“注意: undefined index ”和“注意: undefined offset ”

javascript - jsf 和 javascript 不兼容?

php - 新文本字段出现在选项卡上?

javascript - 刷新页面时的scroll()函数