代码之家  ›  专栏  ›  技术社区  ›  Tom

jquery/javascript没有在单击时获取值

  •  2
  • Tom  · 技术社区  · 14 年前

    我需要从下面的链接代码中动态更改一个带有“name”属性的变量。。。

           <input type="text" class="datepicker" id="dp1">
    
           <a href="javascript:;" class="tab" name="1,2">test button</a>
    

    $(document).ready(function(){
    
        var pickable = { dp1: [4,5,6] };
    
        $(".tab").click(function () { 
            var test = $(this).attr("name").split(",");
            pickable = { dp1:  test  };
        });
    
        $(".datepicker").each(function() {
            $(this).datepicker({
                beforeShowDay: function(date){ 
                    var day = date.getDay(), days = pickable[this.id];
                    return [$.inArray(day, days) > -1, ""];
                },
            });
        });
    
    });​
    

    你知道为什么这样不行吗??

    3 回复  |  直到 14 年前
        1
  •  1
  •   Jamie Taylor    14 年前

    你可以试试这样的

    $(document).ready(function(){
    
    var pickable = ["2","3","4","5"];
    
    function closedDays(date){
        var sDate = date.getDay().toString();
        if ($.inArray(sDate, pickable) == -1) return [false,"",""];
        else return [true, ""];
    }
    
    $(".tab").click(function () { 
       pickable =  $(this).attr("name").split(",");
         closedDays;
    });
    
    $(".datepicker").each(function() {
        $(this).datepicker({
            beforeShowDay:  closedDays
        });
    });
    });​
    

    你可以在这里试试 http://jsfiddle.net/ZKW3b/2/

        2
  •  1
  •   Andreas Grech    14 年前

    如果你的意思是函数传递给 click 如果没有执行,请检查该代码是否在html之前被解释。

    ready 功能:

    $(function () {
        var pickable = { dp1: [4, 5, 6] };
        $(".tab").click(function () { 
            var test = [ $(this).attr("name") ];
            pickable = { dp1:  test  };
        });
    });
    

    如果问题是您想要 name "1, 2"

    var pickable = { dp1: [4, 5, 6] };
    
    $(".tab").click(function () { 
        var test = $(this).attr("name").split(",");
        pickable = { dp1:  test  };
    });
    

    现在,价值 "1, 2" 正在被 , 标记并分隔为一个值数组: ["1", "2"]

        3
  •  0
  •   erickb    14 年前

    如果您想让var pickable在代码中的任何地方都可用,您可能需要使用, jquery data

        $(document).data('pickable', { dp1: [4, 5, 6] } );
        $(".tab").click(function () { 
            var test = $(this).attr("name").split(',');
            $(document).data('pickable', { dp1:  test  });
        });