重新连接daterangepicker()构造函数时,apply.daterangepicker事件停止触发

时间:2019-04-14 15:26:20

标签: javascript jquery daterangepicker

我正在使用daterangepicker版本:3.0.3

我有一个单选按钮对,可让用户在本地时间和utc时间之间切换。当我单击单选按钮时,我要删除并重新附加daterangepicker构造函数,以便可以指定其他预定义的日期范围。

但是,单击单选按钮后,当我单击“应用”或单击预定义的日期范围时,daterangepicker会停止触发事件。

我在jsfiddle上做了一个程序的简化版本,apply事件仍然没有触发

https://jsfiddle.net/flexmcmurphy/re62qhb8/4/

代码如下:

int[][] board = new int[9][9];
BufferedReader br = new BufferedReader(new FileReader(new File("/path/to/file")));
String line;
int lineNumber = 0;
while ((line = br.readLine()) != null) {
    String[] numbers = line.split("");
    for (int columnNumber = 0; columnNumber < numbers.length; columnNumber++)
        board[lineNumber][columnNumber] = Integer.parseInt(numbers[columnNumber]);
    lineNumber++;
}
br.close();

预期结果: 当我更改选定的单选按钮,然后选择一个预定义的日期范围或在daterangepicker中单击“应用”时,apply.daterangepicker事件应触发,并会出现一个alert()弹出窗口,表明该事件已触发。

即:应删除daterangepicker构造函数,并使用新属性重新附加。

之所以会这样,是因为更改单选按钮时会调用我的attachpicker()方法。

实际结果: 相反,当我更改选定的单选按钮,然后选择一个预定义的日期范围或在daterangepicker中单击“应用”时,我没有弹出警告,表明已触发Apply事件。

但是...

当我更改选定的单选按钮时,出现在文本框中的startDate和endDate会正确更新。

在选择本地单选按钮的情况下:     “ startDate”:“ 04/08/2019”     “ endDate”:“ 04/10/2019”

已选择“ UTC单选按钮”:     “ startDate”:“ 04/08/2019”     “ endDate”:“ 04/14/2019”

所以这告诉我daterangepicker构造函数的确与新属性重新绑定在一起,只是apply事件停止触发。

那是为什么?

1 个答案:

答案 0 :(得分:1)

您正在调用的remove()函数会删除您要销毁的日期范围选择器的所有事件侦听器。

将您创建的apply.daterangepicker侦听器移到attachpicker()函数中。