Tworzenie pluginow do jquery

0

Czesc, od pewnego czasu ucze sie javascriptu. Idzie mi coraz lepiej, dlatego postanowilem sie pouczyc troche jquery. Wlasciwie to pouczyc skladni i tych skroconych rzeczy co baardzo ulatwiaja sprawe. Znalazlem filmik na yt i wzorujac sie na nim napisalem taki "mini, mini" plugin, no ale od czegos trzeba zaczac, wiadomo. I teraz moje pytanie, plugin zaczynal sie od takiej skladni:

(function($){
	$.fn.test = function() {
		this.links = function(element) {
			$(element).attr('target','_blank');
		}

})(jQuery);

Konkretnie chodzi mi o $.fn, bo reszte to sam pisalem.
Czy zeby pisac pluginy to trzeba tego uzywac? - to moje pierwsze pytanie.

Piszac ten "plugin" zastanawialem sie nad podpinaniem tego dla ludzi ktorzy chcieliby to jakos sobie walnac na swojej stronce. Jaka jest najlepsza metoda, zeby robic pluginy, tak zeby ludzie mogli je fajnie podpinac na swojej stronie? Tutaj jak widac staralem sie to zrobic obiektowo, tak zeby bylo mozna to wywolac za pomoca operatora new i ew. metody po prostu po kropce dodawac, ale nie wiem czy to dobra koncepcja na robienie pluginow. Jak wiec profesjonalnie to zrobic, zebym nie marnowal czasu i nie bral zlych nawykow?

0

Jeżeli nie chcesz nabrać złych nawyków to naucz się porządnie javascriptu, zanim zabierzesz się za jQuery. Mam wrażenie , że kompletnie nie masz pojęcia czym jest programowanie obiektowe, co robi operator new itd.

$.fn to inaczej odwołanie do prototype

jQuery.fn === jQuery.prototype //true

, ale mniemam, że jak ledwo liznąłeś javascript to nie masz pojęcia co to jest i jak działa. Dodajesz to po to, żeby móc później zrobić tak:$("#asd").nowoDodanaFunkcja();

0

Operator new tworzy instancję typu obiektu zdefiniowanego przez użytkownika lub jednego z wbudowanych typów obiektów, który posiada funkcję konstruktora.
i to dokladnie mialem na mysli, piszac post do gory, tylko po prostu nie potrafie tego powiedziec profesjonalnym jezykiem, tak zeby bardziej doswiadczeni zrozumieli to wlasciwie, bo ja nie umiem jeszcze operowac kazdym slowem, tak jak jest w definicji. A co do prototype to tez sie tego uczylem, wiec wiem co to jest. Wiem, ze prototype w js mozna przedstawic w taki oto sposob

var om = function(name){
this.name = name;
}
om.prototype.show = function (){
alert(this.name);
}
var me = new om('Jacek');
me.show();
 

I nie jest to kopiowane z internetu. Po prostu nie umiem nazwac rzeczy po imieniu, wiec bede musial sie do tego przylozyc, zeby nazewnictwo bylo profesjonalne. Okej, wiem juz ze jest to prototype w jquery, ale nadal nie wiem jak najlepiej robic plugin, zeby latwo go podpiac.

0

Wszystkie obiekty w js dziedziczą zmienne i metody po swoim prototypie. Zastosowanie prototypu lepiej zobrazuje coś takiego (moim zdaniem):

    var Vehicle = {
        init: function (engines) {
            this.engines = engines;
        }
    };

    var Car = Object.create(Vehicle);

    Car.setup = function (engines, wheels) {
        //idziemy o jeden wyżej w prototype chain
        this.init(engines);
        this.wheels = wheels;
    };
    Car.drive = function () {
        console.log("Starting up my " + this.engines +
            " engine\\s and drifting on " + this.wheels + " wheels");
    };

    var bmw = Object.create(Car);
	var scoda = Object.create(Car);
    bmw.setup(2, 4);
	scoda.setup(1, 4);
    bmw.drive();
	scoda.drive();

Pisanie dobrych pluginów nie jest takie łatwe. Nie chce Cie zniechęcać, ale lepiej jest dobrze znać javascript i jquery (wszystkie niuanse), a pozniej sie zabierać za pisanie pluginów, bibliotek i innych takich.

Podrzucam od siebie:
Javascript
https://github.com/getify/You-Dont-Know-JS
http://eloquentjavascript.net/
http://www.amazon.com/Object-oriented-JavaScript-Powerful-Approach-Development-ebook/dp/B00E7NCAYA/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1444030632&sr=1-1&keywords=Object-Oriented+JavaScript

Jquery
http://www.amazon.com/jQuery-Novice-Ninja-Earle-Castledine/dp/0987153013/ref=sr_1_1?s=books&ie=UTF8&qid=1444030391&sr=1-1&keywords=jQuery%3A+Novice+to+Ninja
http://www.bitrepository.com/ebook-jquery-trickshots-100-advanced-techniques.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1