按下箭头键时在下拉列表中使用Jquery livequery?

时间:2012-07-02 17:09:03

标签: javascript jquery

我有像这样的jquery代码并且它有效但箭头键按下有问题。

 $(document).ready(function() {   
  $(function(){
     $("#tasks").hide();
        $("select#categories").livequery("change", function () {
                $("#tasks").show();
                $.getJSON("ajax.php?module=responsables&action=list_tasks",{id: $(this).val()}, function(j){

                        if($("#categories").val()=="-0") 
                        {                               
                                $("#tasks").hide();
                        }
                        //if the div is hidden
                        $("div#form_objectifs").hide();
                        var options = '';
                        for (var i = 0; i < j.length; i++)
                        {
                                options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
                        }
                        $("#tasks").html(options);
                        $('#tasks option:first').attr('selected', 'selected');
                })
        }).livequery("keypress", function() { 
              $(this).trigger("change");    
            });

 });
</script>

我试着用这个:http://jsfiddle.net/tW6Su/2/为箭头按键过滤器提供了可能性。

所以我试过了:

<script type="text/javascript" charset="utf-8">
 $(document).ready(function() {   
    $(function(){
         $("#tasks").hide();
            $("select#categories").livequery("change", function () {
                    $("#tasks").show();
                    $.getJSON("ajax.php?module=responsibles&action=list_tasks",{id: $(this).val()}, function(j){

                            if($("#categories").val()=="-0") 
                            {                               
                                    $("#tasks").hide();
                            }
                            //if the div is hidden
                            $("div#form_objectifs").hide();
                            var options = '';
                            for (var i = 0; i < j.length; i++)
                            {
                                    options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
                            }
                            $("#tasks").html(options);
                            $('#tasks option:first').attr('selected', 'selected');
                    })
            }).livequery("keypress", function() { 
           $(this).trigger("change");


 });
</script>

但是我得到了一个js错误。

$("select#categories").livequery is not a function http://localhost/project/index.php?module=responsibles&action=objectivs Line 120

任何人都可以帮我解决错误吗?感谢

1 个答案:

答案 0 :(得分:1)

似乎jsFiddle在运行时不包含脚本。当我将它包含在HTML中时,它按预期工作。

http://jsfiddle.net/tW6Su/11/