Подтвердить что ты не робот

Это как вы определяете функцию в jQuery?

Это как вы определяете функцию в jQuery?

$(document).ready( function () {
    var MyBlah = function($blah) { alert($blah);  };
 });

Теперь для вызова функции:

MyBlah('hello');
4b9b3361

Ответ 1

Прежде всего, ваш код работает и что действительный способ создания функции в JavaScript (в стороне от jQuery), а потому, что вы объявляете функцию внутри другой функции (анонимный в этом случае), "MyBlah" не будет доступный из глобальной области.

Вот пример:

$(document).ready( function () {

    var MyBlah = function($blah) { alert($blah);  };

    MyBlah("Hello this works") // Inside the anonymous function we are cool.

 });

MyBlah("Oops") //This throws a JavaScript error (MyBlah is not a function)

Это (иногда) желательное поведение, так как мы не загрязняем глобальное пространство имен, поэтому, если ваша функция не требуется вызывать из другой части вашего кода, это путь.

Объявление его вне анонимной функции помещает его в глобальное пространство имен и доступно для него везде.

Наконец, $ в начале имени переменной не требуется, а иногда используется как соглашение jQuery, когда переменная является экземпляром самого объекта jQuery (не обязательно в этом случае).

Возможно, вам нужно создать плагин jQuery, это очень легко и полезно, так как это позволит вам сделать что-то вроде это:

$('div#message').myBlah("hello")

Ответ 2

Нет, вы можете просто написать функцию как:

$(document).ready(function() {
    MyBlah("hello");
});

function MyBlah(blah) {
    alert(blah);
}

Это вызывает функцию MyBlah в готовом контенте.

Ответ 3

Нет.

Вы определяете функции точно так же, как и в обычном javascript.

//document ready
$(function(){
    myBlah();
})

var myBlah = function(blah){
    alert(blah);
}

Также: нет необходимости в $

Ответ 4

Вы можете расширить прототип jQuery и использовать свою функцию как метод jQuery.

(function($)
{
    $.fn.MyBlah = function(blah)
    {
        $(this).addClass(blah);
        console.log('blah class added');
    };
})(jQuery);

jQuery(document).ready(function($)
{
    $('#blahElementId').MyBlah('newClass');
});

Дополнительная информация о расширении прототипа jQuery: http://api.jquery.com/jquery.fn.extend/

Ответ 5

jQuery.fn.extend({
    zigzag: function () {
        var text = $(this).text();
        var zigzagText = '';
        var toggle = true; //lower/uppper toggle
            $.each(text, function(i, nome) {
                zigzagText += (toggle) ? nome.toUpperCase() : nome.toLowerCase();
                toggle = (toggle) ? false : true;
            });
    return zigzagText;
    }
});

Ответ 6

Таким образом вы определяете анонимную функцию, которая вызывается, когда документ готов.