2017-06-22 166 views
0

一個簡短的問題,我不能包裹我的頭。Datepicker click event not firing

我們有一個簡單的Datepicker(jQuery UI),在td上有click事件,沒有別的。但不管我嘗試點擊事件不會觸發。

例子: https://jsfiddle.net/s63y1w6h/

的單擊事件delaged,因爲HTML中,每點擊一個td時間的變化,但同樣的「無」再次發生。

至於爲什麼我需要點擊a,我需要td數據屬性,文本和其infeset,這將很難從onSelect method得到。

任何想法如何觸發點擊事件?

+1

只需選中jQuery的UI庫,以獲得td,在那裏你可以看到' if(handled){ \t \t \t event.preventDefault(); \t \t \t event.stopPropagation(); \t \t}'這可以防止默認動作和事件冒泡...... –

+0

我認爲這將是這樣的,謝謝你的信息, – drip

+1

我有一些空閒時間,所以決定試一試(悲傷地onSelect'方法由於@PranavCBalan評論)https://jsfiddle.net/5qwgoxyL/ –

回答

1

你仍然可以使用onSelect到F IRE你的邏輯,當被點擊了一天

$('.datepicker').datepicker({ 
    onSelect:function(dt,obj){ 
    var day = parseInt(dt.substring(3,5)); 
    var td; 
    $("td>a").each(function(index,elm){ 
    if(parseInt($(elm).html()) === day){ 
     td = $(elm).parent(); 
     return; 
     } 
    }) 
    console.log(td) 
    alert("You're welcome!!!") 
    } 
}); 

寫了一些黑客的邏輯基礎上選擇

一天工作plnkr

0

儘量把你的代碼中

$(document).ready(function(){ 
    //Your code here 
}); 

的jsfiddle:https://jsfiddle.net/s63y1w6h/1/

編輯: 嘗試把你的代碼中

$(document).ready(function(){ 
    $('.datepicker').datepicker({ 
     onSelect: function(){ 
      //your code here 
     } 
    }); 
}); 

https://jsfiddle.net/s63y1w6h/2

+0

一旦你點擊'td'或者改變月份(因爲html被刪除並且默認再次添加),這不起作用。你必須拖延你的事件。 – drip

+0

@drip在這種情況下,您可以使用'datepicker'選項中的'onSelect'。 https://jsfiddle.net/s63y1w6h/2/ –