Вы можете сделать это, используя шаблон модуля. Точно так же:
var foo = function() {
var that = {};
that.a = 7;
that.b = 6;
that.c = function() {
return that.a + that.b;
}
return that;
};
var fooObject = foo();
fooObject.c(); //13
С помощью этого шаблона вы можете создать несколько объектов foo в соответствии с вашими потребностями.
В вашем примере: $(this).hide();
, this
- это переменная JavaScript, представляющая «P», который был нажат, вызывая событие.
Переменные JavaScript никогда не заключаются в кавычки.
Селекторы элементов DOM всегда заключаются в кавычки (документ и окно являются «особыми случаями»).
Чтобы ссылаться на любые элементы в DOM, вы должны заключить его в кавычки. Например: если у вас есть HTML, который выглядит следующим образом:
<button>Click my button</button>
Ваш jQuery может выглядеть так:
$(document).ready(function({
// listen for hover on the button
$('button').mouseenter(function() { ... }); // 'button' is a selector for <button>, use quotations
...
// assign the button to a variable and perform an action
var buttonVar = 'button';
$(buttonVar).mouseenter(function(){ ... }); // buttonVar is a variable, do not use quotations
});
В случае $(this)
, this
является переменная, которая представляет текущий активный элемент. Лично я использую $(this)
при циклическом переключении между сериями элементов одного типа или элементами массива.
Например, ваш HTML может выглядеть так:
<p class="highlight">Highlight me</p>
<p class="nohighlight">Do not highlight me</p>
<p class="highlight">Highlight me</p>
ваш jQuery может выглядеть так:
$('.highlight').each(function(){ // 'highlight' is a selector for class="highlight", use quotations
$(this).css("background","yellow"); // this is a variable, do not use quotes
});