2011-09-11 28 views
2

看到我不是專家的Javascript,但老的Javascript我知道就是這樣一堆簡單的函數和變量:這個奇怪的一段代碼,我總是在Javascript

function doSomething(){ 
    var data = "test"; 
    return data; 
} 

但最近我看到這樣的一些Javascript代碼:

$(document).ready(function(){ 
        $("#about").hide(); 
        $(".tababout").collapser({ 
         target: '#about', 
         effect: 'slide', 
         changeText: false, 
        }); 
     }); 

這到底是什麼?這叫什麼?所有瀏覽器都更容易和支持嗎?我需要更多關於此的信息。

+1

作爲JOHND說,這是最有可能的庫* jQuery的*。但是,它當然仍然是JavaScript,所以如果你的語法看起來很奇怪,你應該深入研究JavaScript。 [一份非常全面的指南由MDN提供](https://developer.mozilla.org/en/JavaScript/Guide)。所有瀏覽器是否支持 –

回答

5

你在看什麼是jQuery。這是一個外部庫,但它支持most(如果不是全部)瀏覽器。如果您要使用它,則需要將其下載幷包含在項目中,請參閱Downloading jQuery

+0

? – Reacen

+0

查看更新的答案。 – JohnD

+0

他們聲稱IE 6.0+,FF 2.0+,Safari 3.0+,Opera 9.0+,Chrome。另請參閱http://docs.jquery.com/Browser_Compatibility –

1

這只是普通的舊的javascript:

var $ = function(sel) { 
    return new init(sel); 
}; 

function init(sel) { 
    if (sel.nodeName) { 
     this[0] = sel; 
     this.length = 1; 
    } else { 
     var elems = document.querySelectorAll(sel); 
     for (var i = 0; i < elems.length; i++) { 
      this[i] = elems[i]; 
     } 
     this.length = elems.length; 
    } 
    return this; 
}; 
init.prototype.ready = function(fn) { 
    _ready(fn); 
    return this; 
}; 
function _ready(fn) { 
    if (!document.body) { 
     setTimeout(function(){_ready(fn);}, 0); 
    } else { 
     fn(); 
    } 
} 
init.prototype.hide = function() { 
    this.each(function() { 
     this.style.display = 'none'; 
    }); 
    return this; 
}; 
init.prototype.show = function() { 
    this.each(function() { 
     this.style.display = 'block'; 
    }); 
    return this; 
}; 
init.prototype.each = function(fn) { 
    for (var i = 0; i < this.length; i++) { 
     fn.call(this[i], i, this[i]); 
    } 
    return this; 
}; 

$("#about").hide().each(function(i,el) { 

    setTimeout(function(){$(el).show()}, 2000); 

}); 

DEMO:http://jsfiddle.net/JGWUs/3/