2011-04-11 61 views
1

确定我有一个JavaScript对象来控制我的页面上的元素,例如负载的HTML,撤销,重做等重载日期选择器动态

当我做复原,它会从输入应该是datepickers的datepickers。

我的代码位于:http://jsfiddle.net/maniator/qAWuA/

我改变了我的代码内联JSON只为小提琴

它有6列,开始日期和到期其中两个是datepickers。

当用户点击撤消或全部撤消 - 日期选择器不再有效。

有人可以帮我在这里吗?

谢谢:-D

修订

仍然有问题,但我改变了一下

+0

这与使用'clone'功能,而不'withDataAndEvents'参数设置为办真正。但是,即使将该属性设置为true也不能解决您的问题。将日期选择器初始化代码重构为在执行撤消操作后运行的单独函数可能会更安全。 – 2011-04-11 20:56:54

+0

@安德鲁 - 怎么样?可能有许多行需要重做。你能在小提琴中展示我吗? – Neal 2011-04-11 20:58:23

+0

你只是调用'$('#page')。remove();'这将杀死所有的事件处理程序。起初我想只是添加$('input.hasDatepicker')。datepicker();在你的撤消方法会有所帮助,但显然不是。 jsfiddle有一些延迟问题,所以我不能继续我的调试,但祝你好运。你必须以某种方式进一步杀死你的事件处理程序。 (编辑:看起来像@安德鲁有同样的想法) – Milimetric 2011-04-11 21:12:31

回答

0

我解决这个问题的小提琴:

我加入这一行既撤消点击次数:

self.refreshDatePickers(); 

上创建第i行添加到了过期时间:

case 'expiration': 
    td.append($('<input>', 
      {value: i, name: index+"["+topIndex+"]", 
       type: 'text', size: 30, id: 'to['+topIndex+']', 
       'class': 'dp', 'index': topIndex})); 
    break; 

,然后我加了refreshDatePickers功能:

refreshDatePickers: function(){ 
    var self = this; 
    $.each($('.dp'),function(){ 
     var index = $(this).attr('index'); 
     var tr = $(this).parent().parent(); 
     $("input[name='startDate["+index+"]'], input[name='expiration["+index+"]']", tr).removeClass("hasDatepicker"); 
     self.createDatePicker(index, tr); 
    }) 
} 
相关问题