页面上的一个处理程序或几个元素

时间:2015-01-29 14:22:52

标签: jquery mouseevent handler document

我有问题,我不知道该做些什么:

  1. 为“文档”添加处理程序并获取包含事件的属性(例如:$ (document) .click (function (e) {// e - is object of properties, get the elem = e.toElement})
  2. 为页面上的每个元素添加处理程序(例如:$ (el1) .click (..); $ (el2) .click (...);
  3. 你认为哪个更好 - 我认为第一个这样的方法将允许灵活地管理事件(我有一个函数可以:connect \ disconnect事件,更改事件的功能,并添加版本功能)

    • 只是一个处理程序而不是大数

    示例: 我的想法是创建一个具有函数的对象,当我点击页面的某个元素时,每个元素都有一个特殊的属性'data-group'和'data-mete',当我点击它们时,我从这些获取数据属性并使用它来访问该函数。

    HTML

    <div data-group="mainMenu" data-meta="home"> Home</div>
    <div data-group="mainMenu" data-meta="product"> Product</div>
    

    JS

    var evtObj = {
       keyboard: {......} ;
       mouse: {
          mainMenu:{
             home: function() {},
             product: function(){},
             .....
          }
       }
     };
    

1 个答案:

答案 0 :(得分:0)

使用单个事件处理程序,但不要将其附加到document,将其放在DOMReady上可用的最近的包含元素上,如下所示:

$('#container').on('click', '.elements', function(e) {
    e.preventDefault();
    var $el = $(this); // the element that raised the event
    // do something...
});