jquery監聽div或其它元素改變 jquery resize 事件 出錯解決方案
阿新 • • 發佈:2019-02-11
網上拷貝能人的下列程式碼:
- (function($, h, c) {
- var a = $([]), e = $.resize = $.extend($.resize, {}), i, k = "setTimeout", j = "resize", d = j
- + "-special-event", b = "delay", f = "throttleWindow";
- e[b] = 350;
- e[f] = true;
- $.event.special[j] = {
- setup : function
- if (!e[f] && this[k]) {
- return false
- }
- var l = $(this);
- a = a.add(l);
- $.data(this, d, {
- w : l.width(),
- h : l.height()
- });
- if (a.length === 1) {
- g()
- }
- },
- teardown : function() {
- if (!e[f] && this[k]) {
- return false
- }
- var l = $(this);
- a = a.not(l);
- l.removeData(d);
- if (!a.length) {
- clearTimeout(i)
- }
- },
- add : function(l) {
- if (!e[f] && this[k]) {
- return false
- }
- var n;
- function m(s, o, p) {
- var q = $(this), r = $.data(this, d);
- r.w = o !== c ? o : q.width();
- r.h = p !== c ? p : q.height();
- n.apply(this, arguments)
- }
- if ($.isFunction(l)) {
- n = l;
- return m
- } else {
- n = l.handler;
- l.handler = m
- }
- }
- };
- function g() {
- i = h[k](function() {
- a.each(function() {
- var n = $(this), m = n.width(), l = n.height(), o = $
- .data(this, d);
- if (m !== o.w || l !== o.h) {
- n.trigger(j, [ o.w = m, o.h = l ])
- }
- });
- g()
- }, e[b])
- }
- })(jQuery, this);
1 . 放入,聲明瞭jq的地方
2 . 可以放入方法裝好(在1的條件下也可以直接隨意放),更好的體現出邏輯:
var function名字 = function(){
上面拷貝的程式碼:
}
監聽呼叫,以及出錯時的處理:
- $("選擇器id,css...等等").on("resize ",function(event){
- console.log("阻止冒泡");
- event.stopPropagation();
- console.log($(this).hight());//等等。。。
- });
js分號有調節格式的作用,-_-(ctrl+k+d)也可以調節格式