我想使用jquery创建独立组件,这是附加事件的正确方式
I want to create stand alone component using jquery what is right way to attach events?
我想创建独立组件意味着我有一些限制,不能使用jquery小部件库。我想知道在组件上绑定事件的正确方法是什么。例如,我想创建某种按钮组。如果我在应用程序中的任何地方使用该按钮组,它应该能够接受回调。如果我使用了这个组件,它应该可以工作。
HTML
<div id="btn-grp" data-callback="list of callback function here" data-value="selected button value" data-valid="false">
<button id="btn1">Button 1</button>
<button id="btn2">Button 2</button>
<button id="btn3">Button 3</button>
</div>
Javascript将是
$("body").on('click', '.btn-grp', function() {
console.log("hey you clicked on button ....");
forloop(){
invoke callback 1 or 2 or so many
}
});
一种方法是我可以为每个组件创建插件,你能分享一些创建组件的包装器函数吗。
好的-我会尝试一下,但我相信其他人会比我回答得更好。://
我认为你试图如何这样做是不可能的。我认为你必须将每个按钮单独绑定到你希望它们做的事情上。问题是,在你给出的例子中,无论你在DIV上进行什么回调,只有DIV会受到影响,而你在按钮上进行的任何回调,只有按钮会受到影响。因此,DIV上的回调只有在您单击按钮所在的位置(如按钮周围的开放区域)时才会触发。
我相信有一种方法可以设置,这样当按下鼠标按钮时,它只会触发一个回调,然后你可以做一些处理来确定鼠标被点击的确切区域(比如按钮)。但这可能有些过头了。
我认为处理这一问题的更简单方法是对每个按钮进行回调,该按钮发送一个参数,说明按下了哪个按钮。如果您需要根据按钮的位置为每个按钮调用不同的函数,那么只需将函数名作为参数发送即可。然后使用调用该函数的间接方法。查看这个堆栈溢出问题以了解更多信息-或者谷歌如何在Javascript中进行间接调用:
JavaScript 中的间接函数调用
相关文章:
- 什么'是在HTML5画布中创建关键事件的最佳方式
- 在Nodejs中堆叠异步回调事件的最佳方式
- 在 Chrome 扩展程序中创建自定义事件的最惯用方式
- 当以编程方式更改输入值时,不会执行更改时事件
- 如何以 Angular2 方式处理 ajaxStart 和 ajaxStop 事件
- 在带有 标记的树节点上以编程方式触发单击事件
- 如何使用cURL或其他方式在点击时执行事件
- 通过它查询谷歌地图上已经存在的标记's的lat和long,并以编程方式在其上触发一个单击事件
- 通知全局事件组件的最佳方式
- 以较短的方式使用事件
- 正在删除事件侦听器(DOM级别0方式)
- onChange事件在以编程方式加载后未正确触发
- 处理多次单击事件的最佳方式
- 以编程方式模糊 EXTJS 3.2.1 中的组合框控件不会触发“模糊”事件
- 将键盘快捷方式关联到鼠标事件的方法
- 以编程方式在聚合物输入上触发 onchange 事件
- 以编程方式触发 Coldfusion 中的事件
- 运行多事件功能的更简洁的方式
- 有没有办法确定 JS 事件是以编程方式还是通过实际交互触发的
- 是否有任何事件/方式我们可以知道文件何时完成下载