点击一下按钮,我有一些jquery会在'body'元素中添加一些html。在那个html中,我有一个datepicker输入字段,拒绝出现它应该出现。
我在我的应用程序中的其他几个位置使用ui-datepicker,它完美无缺。
我在文档加载时尝试调用datepicker:
jQuery ->
$('.my-datepicker-class').each ->
input = $(this)
input.datepicker()
并在将新html添加到页面的click事件之后:
$('.my-button').click ->
$('body').ipadoverlay
titleStyle: false
contentWidth: 500
topSpc: true
content: $('#popup-for-' + thing_id).html()
$('.my-datepicker-class').each ->
input = $(this)
input.datepicker()
但挑选者拒绝出现。我的猜测是它与jquery构建和放置datepicker有关,但我真的不知道。
如果您有任何想法或可以使用更多信息,请与我们联系。
更新 我更改了我调用datepicker()的方式,以便它只适用于我想要附加datepicker的元素。
$('.ipadoverlay .date-picker').datepicker()
这消除了.each =>的第一个问题 现在它默默地失败了。没有错误或警告。日期选择器根本没有出现。
我将开始深入研究jquery.ui.datepicker.js,看看我是否能弄明白最新情况,但如果你有任何想法为什么datepicker无法回应,请告诉我。
更新2 好的,我更进了一步。类'hasDatepicker'已经附加到我想要添加datepicker的元素(这意味着$('。date-picker')。在其他地方调用了datepicker(),而元素是隐藏和未使用的),但是datepicker不起作用。我通过从我的元素中删除类并再次调用.datepicker()来修复此问题
$('.ipadoverlay .date-picker').removeClass('hasDatepicker')
$('.ipadoverlay .date-picker').datepicker()
现在,datepicker会显示点击,但选择日期不会做任何事情......非常感谢帮助
答案 0 :(得分:1)
你需要使用胖箭头。你对'this'的使用会失去其背景。
jQuery ->
$('.my-datepicker-class').each => # <-- Fat arrow
input = $(this)
input.datepicker()
我会解释,但coffeescript.org比我做得更好。