2017-01-10 59 views
2

我有一個日曆從API在線提取日期和時間。當拉動倍時,它們顯示在一個<ul><li>設置如下所示:無法讓Jquery代碼在點擊上工作

enter image description here

下面是用於分析的時間和創建列表項的PHP代碼:

foreach($decoded as $times){  
    $dateTime = DateTime::createFromFormat('Y-m-d\TH:i:sO', $times->time); 
    $time = $dateTime->format('h:i A'); 

    $eventListHTML .= '<li id='.$times->time.' class="available_times">'.$time.'</li><br>'; 
} 

我也有jquery應該是,當其中一個時間列表項被點擊,滑動包含日曆的div,然後通過滑下顯示下一個div。下面是該代碼:

$(".acuity_times").click(function(){ 

    $("#calendar_div").slideUp(1000,function(){ 
     $("#marketing_div").slideDown(1000); 
    }); 
}); 

這裏有兩個div的是在Jquery的被引用:

<div id="calendar_div"> 
<script> 
$("#calendar_div").hide(0); 
</script> 
    <?php echo getCalender(); ?> 
</div> 
<div id="marketing_div"> 
<script> 
$("#marketing_div").hide(0); 
</script> 
    <?php echo chooseMarketing(); ?> 
</div> 

我希望它最終做的是,當我點擊的可用時間在日曆中,它將花費從PHP中設置ID的時間並保存它以便稍後安排約會,但是我尚未實現該部分,我只是試圖讓滑動操作起作用。目前,當我點擊列表項目時,它不會執行任何操作。

+2

你居然交織您的jQuery這樣的代碼? –

+1

也許使用'style =「display:none;」'來隱藏垃圾,而不是胡亂jquery遍佈tarnation –

+0

感謝您的建議。我確實嘗試過style =「display:none;」之前和它沒有工作,但現在它出於某種原因,可能剛剛被緩存或什麼。儘管如此,這仍然不能解決我的原始問題。 –

回答

0

更新你的PHP和增加值的屬性,所花費的時間:

foreach($decoded as $times){  
    $dateTime = DateTime::createFromFormat('Y-m-d\TH:i:sO', $times->time); 
    $time = $dateTime->format('h:i A'); 

    $eventListHTML .= '<li id='.$times->time.' value='.$times->time.' class="available_times">'.$time.'</li><br>'; 
} 

更新jQuery代碼對li元素點擊事件綁定:

$(".available_times").on('click', function() { 
    var time = $(this).val(); 
    $("#calendar_div").slideUp(1000, function() { 
     $("#marketing_div").slideDown(1000); 
    }); 
});