【发布时间】:2010-08-05 00:05:22
【问题描述】:
我尝试了很多不同的可能性来实现我认为应该是简单的代码执行。我正在通过.load() 从服务器加载 DOM 对象。其中一个加载的项目是一个带有日期的输入文本框。当我点击输入框时,我想加载 jdpicker(一个插件 datepicker)。由于.live() 和.delegate() 的行为,即使我分别使用.die() 或.undelegate(),我也无法让弹出日期选择器正常运行。它要么弹出,允许我单击窗口中的一个对象,然后立即关闭(我无法在不关闭窗口的情况下浏览数月、数年),或者弹出窗口并且每次后续单击都会重新执行生成多个实例的代码日期选择器。
我尝试了.live()、.delegate()、.one() 的不同组合,但没有成功。我已经在主窗口中测试了日期选择器,并且知道它在那里工作正常。我可以发布代码,但不确定我所做的十种不同尝试中的哪一种是最好的例子。我可以展示我最近的尝试。
有人有合适的例子吗?谢谢!
更新
我已将代码编辑为如下:
$("#edit-entry").load("/edit/", { id:id }, function(){
$('.jdpicker').one('click', function(){
$(this).jdPicker();
});
});
这取决于成为完整的答案。日期选择器不再调用多个实例,这很好,但我仍然无法导航它的控件(月、年选择)。如果我点击下个月,它将加载并关闭。下次我点击它时,它会在下个月重新打开。所以,它确实有效,但肯定是不可取的。有什么建议吗?
【问题讨论】:
标签: javascript dom jquery event-delegation