簡體   English   中英

如何從codeigniter日歷的ajax成功結果獲取元素的屬性?

[英]How to get attr of element from ajax success result of codeigniter calendar?

我將使用codeigniter日歷來顯示事件。 默認情況下,當我生成日歷並顯示每個事件時,沒有問題。 每個事件可以顯示在引導程序模式上,具體取決於(單擊)dan傳遞給my控制器功能的日期。 問題是當我使用jquery ajax單擊prev或next鏈接來加載prev或下個月時,當月份改變后,然后單擊一天,則jquery $(this)函數無法捕獲attr值。 有我的代碼片段:

CI日歷模板已刪除:

{cal_cell_content}<div data-toggle="modal" data-target=".mymodal" class="detail" val="{day}"><span class="myclass">{day}</span><span class="d{day}">{content}</span></div>{/cal_cell_content}

加載日歷的功能:

public function show_cal_ajax($yr = NULL, $mth = NULL)
    {
        $this->load->model('m_cal');
        $this->load->library('calendar', $this->_calconfig()); 
        $year = $month = "";
        if($yr != NULL && $mth != NULL)
        {
            $month = $mth;
            $year = $yr;
        }
        else
        {
            $month = date('m');
            $year = date('Y');
        }

        $numEvent   = $this->m_cal->numOfEvent($month, $year);
        $data           = array(
                            'cal_data' => $this->calendar->generate($year, $month, $numEvent)
                        );
        echo $data['cal_data'];
    }

和jquery ajax用於加載事件詳細信息:

$(".detail").on('click',function(){
        var day = $(this).attr('val');

        $.ajax({
            type: 'POST',
            dataType: 'html',
            url: <?php echo "'".base_url('view/show_event_detail')."'"; ?>,
            data:{<?php echo "y: $year, m: $month";?>, d: day}, 
            success: function( data ) {
                $( ".modal-content").html(data);
            },
            error: function(){
                alert('Error: ajax request error.');
            } 
        });
});

因此,在通過單擊上一個或下一個鏈接更改日歷后,jQuery詳細信息功能不起作用,我猜$(this).attr('val')沒有值,因為日歷數據/月已被ajax更改請求並將其附加到html的#calendar上。盡管月份已更改,任何人都可以幫助我如何獲取attr值...

順便說一句,完整的代碼可以在這里找到: http : //pastebin.com/VgydABai謝謝...

將年月日添加到模板中,然后使用帖子的各個值

class="detail" data-day="{day}" data-month="{month}" data-year="{year}"


var caldata = {};
$(document).on('click', ".detail", function() {
    caldata["y"] = $(this).attr('data-year');
    caldata["m"] = $(this).attr('data-month');
    caldata["d"] = $(this).attr('data-year');

    $.ajax({
        type: 'POST',
        dataType: 'html',
        url: <?php echo "'".base_url('view/show_event_detail')."'"; ?>,
        data: caldata, 
        success: function( data ) {
            $( ".modal-content").html(data);
        },
        error: function(){
            alert('Error: ajax request error.');
        } 
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM