0

晚上的绅士们,我遇到了一个艰难的问题,我不确定这是否是解决这个问题的正确方法,但这里有……基本上我正在创建一个动态日历,目前我正在处理月回功能(你点击箭头,它返回)我有一个 jquery 函数,可以在单击时启动其他函数,到目前为止一切正常,日历在一个月前重新绘制,月份的名称返回一个,但是我在设置年份时遇到问题1,进一步详细说明...月份名称由 ajax 查询(php)重绘,它运行良好,据我所知,我的 javascript 也应该很好用。基本上每当它回到一年时,我都会在其中存储一个数字<div id = "placeholder>用作参考点。这听起来很复杂,希望代码更有意义,如果有人能找到更好的方法,请告诉我:

jQuery:

$(document).ready(function() {

$("#changeMonthBack").click(function() {

//ajax query for month title
function(data) {
    //responce is here
    //set year (n)
        var placeholder = parseInt($("#placeholder").attr('class'),10);

        if(str == 1 && placeholder == ""){
            var d = new Date();
            var n = d.getFullYear();
            n = n - 1;
            $("#placeholder").addClass("1");
        }

        else if(str == 1 && placeholder != ""){
            var d = new Date();
            var n = d.getFullYear();
            n = n - placeholder;
            var temp = placeholder + 1;
            $("#placeholder").removeClass(""+placeholder+"");
            $("#placeholder").addClass(""+temp+"");
        }

        else{
            var d = new Date();
            var n = d.getFullYear();
        }



        $("#monthYear").html(data +" "+ n);

HTML:

    <li title = "Previous Month"  id = "changeMonthBack"></li>
    <div id = "placeholder"></div><!-- holder for year js -->
    <div id = "monthYear">

目前到 2013 年之后,它给了我一个 NaN 错误。任何和所有的帮助都会很可爱。如果有更多信息可以帮助,请告诉我

4

1 回答 1

1

如果你做这样的事情:

$(document).ready(function() {
    var placeholder = 0;

    $("#changeMonthBack").click(function() {
        //....
        function(data) {
            //responce is here
            //set year (n)
            if(str == 1 && placeholder === 0) {
                var d = new Date();
                var n = d.getFullYear();
                n = n - 1;
               placeholder = 1;
            }

            else if(str == 1 && placeholder > 0) {
                var d = new Date();
                var n = d.getFullYear();
                n = n - placeholder;
                placeholder++;
            }
        }
        //....
    });

});

您现在可以placeholderclick处理程序中(以及在更深的嵌套函数中)使用该变量,因为您的嵌套函数可以访问外部闭包中定义的变量。

现在,您无需为在 DOM 中存储数据而烦恼。

于 2013-02-18T22:01:12.647 回答