cra*_*gtb 7 jquery jquery-ui datepicker
我知道当你动态创建一个元素时,你必须使用类似的东西:
$("#id").live("click", function() {
//something
});
Run Code Online (Sandbox Code Playgroud)
现在我有这个:
$('#tdInput1').datepicker({
inline: true
});
Run Code Online (Sandbox Code Playgroud)
我的问题是:我怎么做这个活的,因此它可以与动态创建的元素进行交互.
Vis*_*hal 20
接受的解决方案不适用于键盘焦点事件..所以我不得不改为:
$('.parent').on('focusin', '.datepicker', function(e) {
$(this).datepicker(options);
});
Run Code Online (Sandbox Code Playgroud)
不得不改为.live,.on因为jquery 1.9.1不包括该.live方法.以上适用于鼠标事件以及键盘焦点事件.
day*_*ker 11
根据:Jquery .live可以使用但不能使用.datepicker
这应该工作:
$("#tdInput1").live("click", function(){
$(this).datepicker({
inline: true
});
});
Run Code Online (Sandbox Code Playgroud)
编辑:这个答案适用于旧版本的jQuery.对于jQuery 1.9+,请尝试Vishal的答案.
你正在处理两件不同的事情.jQuery live用于事件绑定,而datepicker不是特定地绑定到事件,而只是在某个时刻向元素添加功能.
live处理事件的唯一原因是jQuery实际上将事件处理程序附加到祖先元素,并且(由于事件在javascript中冒泡),祖先实际上接收事件并委托它,就好像它来自元素一样.这个原则有点复杂,但又长而短,只能用于事件.
如果要添加datepicker功能,只需datepicker在创建新元素后调用该函数即可.