2016-09-07 4 views
4

JQuery работает с $ как функцией, я хотел знать, как я могу сделать свою собственную функцию?

А как сделать функцию подрядчика в JavaScript? Как я сделать это:

window.test = (function() {   
    var test = { 
     get: function (selector) { 

     } 
    }; 

    return test; 
}()); 

(к примеру) Я хочу, чтобы выбрать элемент холста, когда я напрямую позвонить test()

ответ

4

Я думаю, что вам нужно, как этот цепным объект.

var myQuery = function (str) {  
 
    this.str=str; 
 
    this.concate = function(str){ 
 
    this.str= this.str+" "+str; 
 
    return this; 
 
    }; 
 
    this.to_string = function(){ 
 
    return this.str; 
 
    }; 
 
    return this; 
 
}; 
 
window['$']=myQuery; 
 

 
alert($('hello').concate(' $').concate('!!').to_string()); 
 
alert(myQuery('hello').concate('myQuery').concate('!!').to_string());

Другой сценарий: Заявленный ссылка myQuery до $ непосредственно;

var myQuery = (function (str) {  
 
    if(typeof window['$'] ==="undefined") 
 
    { 
 
    \t window['$']=this; 
 
    } 
 
    this.str=str || ''; 
 
    this.concate = function(str){ 
 
    this.str= this.str+" "+str; 
 
    return this; 
 
    }; 
 
    this.to_string = function(){ 
 
    return this.str; 
 
    }; 
 
    return this; 
 
})(); 
 

 
alert($.concate("From $").to_string());

+0

Реализовано Цепочка объект ... –

+0

Хороший ответ! Разве это невозможно сделать 'window ['$'] = myQuery' внутри функции' myQuery'? Как с помощью функции, вызываемой немедленно! – M98

+0

@ Kermani, Извините, я не получил вас. Я сделал некоторые изменения. Вы говорите об этом? –

2

above answer правильно, но я думаю, я понимаю, что вам нужно, и, возможно, этот ответ также поможет вам:

window["$"] = function (selector) {  
 
    this.s=selector; 
 
    this.changeColor = function(color){ 
 
     document.getElementById(this.s).style.background = color; 
 
    return this; 
 
    }; 
 
    return this; 
 
};
<div id="elementId"> 
 
    Change my background. 
 
</div> 
 

 
<a onClick="$('elementId').changeColor('red');" href="#">Red</a> 
 
<a onClick="$('elementId').changeColor('blue');" href="#">Blue</a> 
 
<a onClick="$('elementId').changeColor('green');" href="#">Green</a>

+0

Спасибо за ваш ответ, это полезно, но, как вы сказали, я думаю, что приведенный ответ более полный ... Спасибо –

+0

@ Lash2 Добро пожаловать :) – M98

+0

@ Kermani , Отлично .. вы достигли того, что Lash 2 нужно .. !!! :) –

Смежные вопросы