组合来自js newb的js脚本

时间:2010-11-04 作者:shawn

我有一个小的。我的wp站点上的js文件,在那里我添加了所有的小js脚本。它工作得很好,但我一直在想如何添加另一个脚本。到目前为止,jslint没有抱怨我当前的文件,并说它是可以的。

我的脚本:

jQuery(function ($) {
function mycarousel_initCallback(carousel) {
jQuery(\'.jcarousel-control a\').bind(\'click\', function() {
    carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
    return false;
});

jQuery(\'.jcarousel-scroll select\').bind(\'change\', function() {
    carousel.options.scroll = jQuery.jcarousel.intval(this.options[this.selectedIndex].value);
    return false;
});

// Next Button
$(\'#mycarousel-next\').bind(\'click\',
function() {
    carousel.next();
    return false;
});

// Prev Button
$(\'#mycarousel-prev\').bind(\'click\',
function() {
    carousel.prev();
return false;
});
};
}
我要添加的脚本开始如下:

jQuery(document).ready(function($) {
var gallery = $(\'#thumbs\').galleriffic({
    delay:                     3000, // in milliseconds
 });
});
我一直遇到的问题是,我发现很多脚本都是从jQuery(文档)部分开始的。当我尝试添加这样开始的脚本时,一切都会中断。

我猜这是一个非常愚蠢的问题,但是我需要在新的加载项脚本中做些什么才能更好地处理我的当前文件呢?

感谢您的帮助和时间。努力学习js,虽然这是一个缓慢的过程。

1 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

这个jQuery(document).ready 当文档DOM准备好进行操作时调用事件。早些时候,我们将所有处理人员document.load, 但这要等到所有图像都加载完毕,大多数情况下人们并不需要这样做。

有三种与此事件挂钩的等效方法,第四种几乎等效:

// Long form
jQuery(document).ready(function() {
    // Your handler
});

// Short form
jQuery(function() {
    // Your handler
});

// Intermediate form (not recommended)
jQuery().ready(function() {
    // Your handler
});

// Classic event binding - will not be executed again if you hook it too late
jQuery(document).bind("ready", function() {
    // Your handler
});
你有时会看到$ 使用而不是jQuery. 这很容易,因为它很短,但其他一些JS库也使用它。为了防止覆盖其他内容,jQuery可以在中执行noConflict mode. 这意味着$ 仅限未使用jQuery 是但是,你的第一个论点ready 处理程序将是jQuery对象本身。这意味着您可以编写如下处理程序function($) {}, 您可以使用$ 在您的功能内部。

因此,您的代码将如下所示:

jQuery(function ($) {
    function mycarousel_initCallback(carousel) {
        jQuery(\'.jcarousel-control a\').bind(\'click\', function() {
            carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
            return false;
        });

        jQuery(\'.jcarousel-scroll select\').bind(\'change\', function() {
            carousel.options.scroll = jQuery.jcarousel.intval(this.options[this.selectedIndex].value);
            return false;
        });

        // Next Button
        $(\'#mycarousel-next\').bind(\'click\',
        function() {
            carousel.next();
            return false;
        });

        // Prev Button
        $(\'#mycarousel-prev\').bind(\'click\',
        function() {
            carousel.prev();
        return false;
        });
    };

    // We are already in the \'ready\' event handler, no need to hook into it again
    // Just add our code here!
    var gallery = $(\'#thumbs\').galleriffic({
        delay:                     3000, // in milliseconds
    });
}

If you have more pure JavaScript questions, you might want to ask them on our "parent" site, Stack Overflow. They have lots of jQuery expertise there.

结束