javascript - 使用默认值包装现有的 jquery 事件

标签 javascript jquery jquery-plugins

我正在尝试找出如何包装点击事件。例如,这是我想要的代码。

$("#test").aclick(function() {
    alert('hi');
});

aclick 唯一做的就是自动使用 e.preventDefault。 是不是有点像?

$.fn.aclick = function(e) {
   e.preventDefault();
   return $.fn.click.apply(this, arguments);
});

谢谢。

最佳答案

绑定(bind)处理程序时,事件对象e 尚不存在。您需要创建一个调用提供的事件处理程序的默认事件处理程序:

$.fn.aclick = function (handler) {
    return this.each(function () {
        var el = this;
        $(el).click(function (e) {
            e.preventDefault();
            handler.call(el, e);
        });
    });
};

关于javascript - 使用默认值包装现有的 jquery 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5332342/

相关文章:

javascript - 如何在 HTML 中实现 "select all"复选框?

javascript - 获取 3 列中每列动态添加的最低值的总和

javascript - DataTables:按数字数据顺序排序不起作用?

javascript - 添加自定义 header 到 pickadate

Jquery 旋转按钮

php - 如何使 window.location.replace 在 IE 9 中工作?

javascript - componentWillReceiveProps 和 componentDidUpdate 无限循环

javascript - 在 AJAX 中动态生成 HTML 行

javascript - jQuery Ajax 在 Safari 中不工作

jquery - Tinymce如何减少多个实例的选项