jQuery,将自定义函数绑定(bind)到 DOM 元素

标签 jquery

我的应用程序中有两个 div,我希望它们具有具有相同签名但具有不同操作的自定义函数,这样我就可以将“当前”div 存储在变量中,然后调用类似以下内容的函数:

myCurrentDiv.theFunction(someEventData);
并启动相应的方法。

如何使用 jQuery 做到这一点?

我尝试做类似的事情:

$("#myFirstDiv").theFunction = function() {
    alert("theFunction on firstDiv");
}
$("#mySecondDiv").theFunction = function() {
    alert("theFunction on secondDiv");
}

最佳答案

jQuery 的哲学与你想要的相反:jQuery 不会用新的属性或方法扩展任何现有的类型/对象;它在其内部实现了所有内容。

但是如果你想用 jQuery 来实现,你有几种不同的方法:

  1. JavaScript方式:

    $("#mySecondDiv")[0].theFunction = function(a, b) { /* ... */ }
    
  2. jQuery.data:

    $("#mySecondDiv").data({ theFunction: function(a, b) { /* ... */ } });
    $("#mySecondDiv").data("theFunction")(1, 2)
    
  3. 自定义事件:

    $("#mySecondDiv").bind('my-event', function(event, a ,b) { /* ... */ });
    $("#mySecondDiv").trigger('my-event', [1, 2]);
    

关于jQuery,将自定义函数绑定(bind)到 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6982948/

相关文章:

jquery - 使用 jquery 加载事件在 IE 8 中失败

jquery - 在 Angular 6 CLI 项目中使用 jQuery 脚本

javascript - chrome 使 div 元素的小方 block 在调整大小时不可见

javascript - 通过 javascript 切换 ionic 侧边菜单

php - 保存数据而不重新加载页面

javascript - 如何将 div 的文本作为 json 字符串放置?

javascript - 如何使用变量调用对象及其方法

javascript - 检查表示 HTML 的文本中的 body 标签是否为空

jquery - 我如何使用 jQuery 在第一个 div 之前插入多个 div 并且没有 id 或类?

带有 ajaxOptions 的 jquery 选项卡