Это как вы определяете функцию в jQuery?
$(document).ready( function () {
var MyBlah = function($blah) { alert($blah); };
});
Теперь для вызова функции:
MyBlah('hello');
Это как вы определяете функцию в jQuery?
$(document).ready( function () {
var MyBlah = function($blah) { alert($blah); };
});
Теперь для вызова функции:
MyBlah('hello');
Прежде всего, ваш код работает и что действительный способ создания функции в 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")
Нет, вы можете просто написать функцию как:
$(document).ready(function() {
MyBlah("hello");
});
function MyBlah(blah) {
alert(blah);
}
Это вызывает функцию MyBlah
в готовом контенте.
Нет.
Вы определяете функции точно так же, как и в обычном javascript.
//document ready
$(function(){
myBlah();
})
var myBlah = function(blah){
alert(blah);
}
Также: нет необходимости в $
Вы можете расширить прототип 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/
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;
}
});
Таким образом вы определяете анонимную функцию, которая вызывается, когда документ готов.