我总是在Javascript中看到这段奇怪的代码

时间:2011-09-11 23:01:53

标签: javascript

我不是Javascript专家,但我知道的旧Javascript只是一堆简单的函数和变量,如下所示:

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

但是最近我看到了一些像这样的Javascript代码:

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

这到底是什么意思?这叫什么?所有浏览器都更容易和支持吗?我需要更多关于此的信息。

2 个答案:

答案 0 :(得分:5)

您所关注的是jQuery。它是一个外部库,但它支持most(如果不是全部)浏览器。如果您要使用它,则需要下载并将其包含在项目中,请参阅Downloading jQuery

答案 1 :(得分: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/