【问题标题】:doing something before default event handler在默认事件处理程序之前做某事
【发布时间】:2014-08-21 06:46:15
【问题描述】:

我正在使用一些插件。在那个

<button class="datepicker-button">&nbsp;</button>

插件库中有此类 datepicker-button 的点击事件处理程序。

我想做的是-

在触发库中指定的默认处理程序之前,我需要一些手动操作。

类似的东西-

$(".datepicker-button").on("click",function(){
        //some operations written by me
        //then do operations specified by the library

});

有可能吗?如果可能的话,请给我任何想法。提前致谢。

【问题讨论】:

  • 点击前要不要做点什么?
  • 为什么不直接进入插件的代码并在那里修改呢?或者您甚至可以删除插件的事件处理程序,并在修改一些原始插件的代码后编写自己的事件处理程序。
  • @Eclecticist 修改插件代码永远不是答案。如果插件代码更新了怎么办?您必须再次进行修改。如果代码被大量重构,可能无法做出你想要的修改。
  • 我正在使用 sap-ui5。其巨大的图书馆。我找不到处理程序在哪里。
  • @EOF 如果插件在click 被引发之前没有给你任何事件挂钩,你可以尝试使用mousedown

标签: javascript jquery sapui5


【解决方案1】:

如果插件在引发click 之前没有给您任何要挂钩的事件,您可以改用mousedown

$(".datepicker-button").on("mousedown", function(){
    // your operations...
});

当释放鼠标按钮时,插件的click 事件将被触发。

【讨论】:

    【解决方案2】:

    无法通过 jQuery 捕获事件的原因是 ui5 组件使用自己的事件总线。

    通常我会说这是实现你自己的 ui5-control 的情况

        sap.ui.commons.DatePicker.extend("your.custom.control", { 
        // your code  
        }
    

    您可以通过 firebug 或任何浏览器您正在使用的开发工具从浏览器中轻松获取您想要扩展的组件的编码。如果您使用参数 sap-ui-debug=true 启动您的应用程序,您将不会获得缩小版本。 您要查找的文件将称为 DatePicker-dbg.js 和 DatePickerRenderer-dbg.js。

    干杯 迈克尔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-12
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多