2015-03-03 4 views

ответ

2

Чтобы сделать это так, как вы просите вам нужно вернуть this из функции плагина

$.fn.myFN = function (X) { 
    this.V1 = X; 
    this.V2 = X + 2; 
    return this; 
}; 


$(function() { 
    var f1 = $("#foo1").myFN(10).V2, 
     f2 = $("#foo2").myFN(20).V2;   

    console.log([f1, f2]) //logs [12,22]  
}); 

DEMO

+0

вы были быстрее меня ... lol .... у вас также может быть 'var fn2 = $ (" # foo2 "). MyFN (20);' и try 'console.log (fn2.V2)' –

+0

спасибо MAN для отличного ответа :) – user3196160

-1

Вы можете использовать .prop для хранения значения в DOM элемента:

$.fn.myFN = function(X){ 
    $this = $(this); 
    $this.prop('v1', X); 
    $this.prop('v2', X+2); 
}; 

$("#foo1").myFN(10); 
$("#foo2").myFN(20); 

console.log( $("#foo2").prop('v2') ) //=> 22 
+0

уход объяснить downvote на рабочий код? – dgilperez

0

Возвращение $ (это), который является текущим контекстом

$.fn.myFN = function (X) { 
    $(this).V1 = X; 
    $(this).V2 = X + 2; 
    return $(this); 
}; 
Смежные вопросы