正常的ajax调用后无法访问jquery

时间:2012-06-01 09:16:27

标签: php jquery partial-views

<ul id="months">
                <?php foreach ($months as $key => $value) { ?>
                    <?php if ($key != 0 && array_key_exists($key, $monthArray) && date("m") > $key) { ?>
                        <li id="<?= $key ?>"><a href="#" rel="nofollow"><?= $value ?></a></li>
                        <?php
                    }
                }
                ?>

下面是jquery代码

        $("#year").change(function(){
//        alert($(this).val());
        $.ajax({
            type: 'get',
            url: 'ay/templates/frontend/_previous_months.tpl.php',
            data: 'year=' + $(this).val(),
            success: function(data) {
                $("#months").html(data);`
            }
        });
    });

问题:当我第一次请求部分时我得到了正确的结果,但在我得到几个月后,我无法从中获取jquery,

下面是我得到我的parial后需要访问的jquery函数(在进行ajax调用之前,当我点击li项目时我可以访问jquery函数

$("#months li").click(function(){
    alert("aaaaaaaaaaaaaaaaaaa");
    $.ajax({
        type: 'get',
        url: 'ay/templates/frontend/_previous_charities.tpl.php',
        data: 'month=' + $(this).attr("id") + '&year=' + $('#year').val(),
        success: function(data) {
            if(data == 'false'){
                $("#charity_result").html("No previous charity in selected Month");
            }else{
                $('#charity_result').fadeOut('slow');
                //                $('#ajax-result').fadeIn('slow');

                $('#charity_result').fadeIn('slow');
                $("#charity_result").html(data);

            }

        }
    });
});

2 个答案:

答案 0 :(得分:1)

我认为您的click事件未添加到#months li。 尝试使用实时方法:http://api.jquery.com/live/

而不是:

$("#months li").click(function() {

使用它:

$("#months li").live('click', function() {

答案 1 :(得分:1)

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。 (但它工作正常^^虽然)但