2017-06-22 171 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/ –