将所有可用事件绑定到元素

时间:2015-04-22 10:44:05

标签: javascript jquery

我可以将all the available events绑定到an element

$('body').on('all available events', '.element', function(e) {
  if (e.type == 'click') {
    // do something...
  } 
  else if (e.type == 'change') {  
    // do something else...
  }
});  

我不想像

一样单独给他们
$('body').on("change click", '.element', function(e) {...});

2 个答案:

答案 0 :(得分:2)

我不建议你这样做,但如果你想:

public class MyObject {
    public String tag = "myTag";

    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            ...
        }
    };

    public MyObject() {
         LocalBroadcastManager.getInstance(context).registerReceiver(mReceiver,
            new IntentFilter("TEST_NOTIFICATION"));
    }

    public String serialize() {
        Gson gson = new Gson();
        return gson.toJson(this, MyObject.class);
    }

    public static MyObject deserialize(String jsonString) {
        Gson gson = new Gson();
        return gson.fromJson(jsonString, MyObject.class);
    }

    public void myMethod() {
        String serialized = this.serialize();
        Log.d("", "serialized: " + serialized);
        MyObject mis = MyObject.deserialize(serialized);
        Log.d("", "deserialized " + mis.tag);
    }
}

参考:https://github.com/jquery/jquery/blob/master/src/event/alias.js#L6

答案 1 :(得分:0)

不应将所有事件绑定到您的处理程序,因为您不知道" all"因此,几乎所有应用程序都是不好的做法。此外,无法绑定到所有事件,因为jQuery内部使用的addEventListener要求您声明要侦听的类型。即使你有一个" all"事件,仍然可以定义具有自己的任意名称的自定义事件。