【问题标题】:Close Event in Kendo Datepicker fire many times关闭 Kendo Datepicker 中的事件多次触发
【发布时间】:2018-02-19 18:08:43
【问题描述】:

我在网格中创建了一个模板:

template: '#if(IniReal != ""){# <div class="text-center">#= IniReal #</div> # } else {#<input class="fechaReal" />  #} #',

在此模板中,当我的排列元素为空时,会创建一个日期选择器

$(".fechaReal").kendoDatePicker({
                            format: "dd-MM-yyyy",                            
                            parseFormats: ["dd-MM-yyyy"],
                            change: vmSeg.Cambio,
                            close: vmSeg.Cerrar
                        });

问题出在Close事件第一次触发后,下一次触发两次,以此类推,我只想让Close事件触发一次,不重复触发

这是我的活动关闭

 vmSeg.Cerrar = function (e) {
                $("#ActiSeguimiento").on("focusout", ".k-datepicker", function (e) {
                    vmSeg.grid = $("#ActiSeguimiento").data("kendoGrid");
                    vmSeg.dataItem = vmSeg.grid.dataItem($(this).closest("tr"));                    
                    vmSeg.dataItem.IniReal = vmSeg.NuevaFecha;
                    return false;
                });
            }

这是我的活动更改:

vmSeg.Cambio = function(e) {
                vmSeg.NuevaFecha = kendo.toString(kendo.parseDate(this.value()), "dd-MM-yyyy");

            }

我的事件关闭有什么问题?

【问题讨论】:

  • 我无法复制我身边的问题 - 请您尝试将其隔离在 dojo 中,以便更深入地了解它。
  • 你好。 link_italic_ bold This 是我在道场中的代码
  • Dojo 。这是我在道场中的代码。对不起

标签: javascript jquery kendo-grid jquery-ui-datepicker kendo-datepicker


【解决方案1】:

我已经检查了您提供的道场,似乎问题是由声明的“focusout”事件引起的,该事件被钩在每次关闭而不是在 Kendo 小部件中。当我删除 'focusout' 事件的 decalration 时,场景工作正常。关闭是在我身边正确触发的,但“focusout”被触发了很多次。在这种情况下,我建议您将其单独定义为here,以便它只触发一次。

【讨论】:

  • 'focusout' 的原因是因为我想恢复该行并将日历的选定值添加到该行。并在以后保存更多数据。
  • 另一种方法是将 'focusout' 事件仅设置为 datepicker 包装器,也使用 open 事件并将其删除,例如 dojo
  • 谢谢!!!。在包装器中设置 'focusout' 事件可以解决我的问题。现在我可以继续流程了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 2015-04-22
相关资源
最近更新 更多