javascript - Kendo Ui - 检查事件是否存在

标签 javascript kendo-ui

我正在将 Kendo Ui 控件与 .Net MVC 结合使用。我希望能够在 javascript 中检查控件上是否存在事件。例如,我声明一个对话框窗口如下。在其他地方,我声明了对话框,但不添加刷新事件。如何在 javascript 中检查刷新事件是否存在?

      @(Html.Kendo().Window()
  .Title("Clone Existing Address")
  .Name("myDialog")
  .Modal(true)
  .Draggable()
  .Resizable()
  .Width(800)
  .Visible(false)
  .Actions(actions => actions
    .Minimize()
    .Maximize()
    .Close()
  )
  .Events(e => e.Refresh("refreshDialog"))
)

示例 javascript:这还不能工作!!

function refreshEventExists() {
  var dialog = $("#myDialog").data("kendoWindow");
  if (dialog.refresh) {
    alert('Refreh event exists');
  }
  else {
    alert('Refreh event DOES NOT exists');
  }
}

最佳答案

您可以检查widget._events:

function numberOfHandlers(widget, eventName) {
    if (widget._events.hasOwnProperty(eventName)) {
        return widget._events[eventName].length;
    } 

    return 0;
}

var dialog = $("#dialog2").kendoWindow().data("kendoWindow");
dialog.bind("activate", function () {});

console.log(numberOfHandlers(dialog, "activate")); // logs "1" (one handler for the activate event)
console.log(numberOfHandlers(dialog, "refresh")); // logs "0" (no handlers for the refresh event

( demo )

关于javascript - Kendo Ui - 检查事件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21454003/

相关文章:

kendo-ui - Kendo DataViz 小部件和 UI 小部件位于同一页面上

javascript - Kendo 网格取消导致删除行

kendo-ui - kendo ui上传,仅限制1个文档

kendo-ui - 剑道ui数据源刷新?

javascript - 调用路由时如何传递变量?

javascript - 两个具有相同名称的 Javascript 函数总是调用相同的参数化函数

javascript - 如何使用jquery永久禁用复选框

ajax - Kendo MVC 如何在初始 SelectList 之后使用 AJAX 重新填充下拉列表?

javascript - 如何识别 HTML Div 改变颜色的原因

javascript - 为什么 javascript crashToStart() 会抛出错误