2011年8月4日 星期四

JQuery之軛

今天體會到Jquery的可怕之處,以前只知道他極度方便,
可以活用selector來對許多element進行調整、設定,
甚至一些事件、css完全不用寫在html tag中,
現在發現這樣作法的後果就是...當你使用過多之後,
變得很難掌控程式的行為,
因為可能不清楚某些js(自己寫的或是用別人的)
會去bind的event,像是不知道為什麼會觸發某些事件,而且找不到觸發點...
...
...
...這樣是要怎樣debug啊?有些狀況可能連中斷點都不知道要設在哪邊。

看來使用JQuery中還是有很多學問的,沒有清楚的規劃架構、框架,
它可能便利反而造成更多問題,就像何金銀發現"拯救懦夫"只是一個騙錢的幌子一樣。

3 則留言:

  1. 那?怎麼查呢?如何列出所有bind的event?

    回覆刪除
  2. 感謝 wangaguo提醒,的確可以知道bind哪些event.
    列出程式如下:
    var elemId = "xxxId";
    var elemData = jQuery._data($('#'+elemId )[0]);
    var eventList = "";
    for(var e in elemData.events){
    eventList += (e + "\n");
    }
    alert(eventList);

    回覆刪除
  3. http://wadevelop.blogspot.com/2011/08/jquery-jquerylibraryeventbindbinddebug.html
    寫法不同的方法,以及其它~
    var e = $.data($("#test").get(0), 'events');
    for(var p in e) alert(p);

    回覆刪除