使用javascript存储未来数学的值

时间:2013-02-18 21:27:09

标签: jquery algorithm

晚上的男士,我有一个艰难的,我不知道这是否是正确的方式去做这个或没有,但这里...基本上我正在创建一个动态日历,目前我正在努力的月份功能(你单击箭头,它返回)我有一个jquery函数启动其他功能onclick,到目前为止一切正常,日历重新绘制一个月,月份的名称返回一个,但我有一个问题设置返回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错误。任何和所有的帮助都很可爱。如果有任何其他信息可以帮助我告诉我

1 个答案:

答案 0 :(得分: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++;
            }
        }
        //....
    });

});

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

现在您不需要在DOM中存储数据。