waplet Posted January 15, 2011 Report Share Posted January 15, 2011 Esmu galīgi balts jquerijā. Taisu kodu, lai būtu countdowns. (function($){ $.fn.start = function (laiks){ laiks = laiks; id = $(this).attr('id'); $(this).skaitit(id, laiks); return this; }; $.fn.skaitit = function (id, laiks ){ if(laiks > 0){ laiks = laiks - 1; $('#' + id).html(laiks); setTimeout(function() { $this.skaitit($(this).attr('id'); , laiks)}, 1000); }; }; })(jQuery); $('#timer2').start(120); saka, ka start is not a function? Kas pa lietu? Esmu totāls iesācējs iekš jquery. Quote Link to comment Share on other sites More sharing options...
0 daGrevis Posted January 15, 2011 Report Share Posted January 15, 2011 (edited) http://api.jquery.com/start Laikam start() nav jQ funkcija... =( Labojums: Varbūt uzmet aci šim... =) http://www.littlewebthings.com/projects/countdown/demo/js/jquery.lwtCountdown-1.0.js Edited January 15, 2011 by daGrevis Quote Link to comment Share on other sites More sharing options...
0 waplet Posted January 15, 2011 Author Report Share Posted January 15, 2011 Es nevienā vietā viņu neizsaucu kā jquery funkciju , doh Quote Link to comment Share on other sites More sharing options...
0 briedis Posted January 15, 2011 Report Share Posted January 15, 2011 (edited) $this.skaitit($(this) ? Normālā gadījumā, ja lietotu kādu IDE'i, uzreiz redzētu, kur tiek izmantots mainīgais, kas nav definēts. Un kāds tolks no šādas rindiņas? laiks = laiks; Un lai definētu jaunu mainīgo, ir jālieto var atslēgvārds. Edited January 15, 2011 by briedis Quote Link to comment Share on other sites More sharing options...
0 waplet Posted January 15, 2011 Author Report Share Posted January 15, 2011 Bet tas neatrisina problēma, kāpēc saka, ka start nav funkcija? Quote Link to comment Share on other sites More sharing options...
0 briedis Posted January 15, 2011 Report Share Posted January 15, 2011 Start netiek izsaukts pirms paša definīcijas? Quote Link to comment Share on other sites More sharing options...
0 waplet Posted January 15, 2011 Author Report Share Posted January 15, 2011 (edited) ir <script src="w.js"/> un tad ir head daļā pie $(document).ready(function(){ $('#timer2').start(120); };); Edited January 15, 2011 by waplet Quote Link to comment Share on other sites More sharing options...
0 ezis Posted January 15, 2011 Report Share Posted January 15, 2011 eee, a tā start() vispār ir jQuery funkcija? Vai arī tam nav nozīmes? :? Quote Link to comment Share on other sites More sharing options...
0 briedis Posted January 15, 2011 Report Share Posted January 15, 2011 ezis, viņš pats definēt to funkciju. waplet, pamēģini salikt viņus kopā, vai tad strādās, vai gadījumā nav problēmas ar scope. ..a kur vispār tiek iekļauts jquery js? Ja pēc w.js, tad noteikti nestrādās, jo neeksistē tāds jQuery objekts. Quote Link to comment Share on other sites More sharing options...
0 waplet Posted January 16, 2011 Author Report Share Posted January 16, 2011 (edited) <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script> <script type="text/javascript" src="/spele/w.countdown.js"></script> Ir šāds head daļā. Ja es laižu caur $('#timer2').skaitit(120); tad iet, bet ar start neiet, nezinu kāpēc. Edit: laikam būs jāmācās JS Edit2: Vairs neviens neiet :D Edited January 16, 2011 by waplet Quote Link to comment Share on other sites More sharing options...
0 briedis Posted January 16, 2011 Report Share Posted January 16, 2011 Pārādi savu pēdējo versiju.. Quote Link to comment Share on other sites More sharing options...
0 waplet Posted January 16, 2011 Author Report Share Posted January 16, 2011 (function($){ $.fn.start = function (laiks){ id = $(this).attr('id'); $(this).skaitit(id, laiks); return this; }; $.fn.skaitit = function (id, laiks ){ if(laiks > 0){ laiks = laiks - 1; $('#' + id).html(laiks); setTimeout(function() { $this.skaitit($(this).attr('id'); , laiks)}, 1000); }; }; })(jQuery); Šitas viss bija beigās. Labāk sākšu ar jquery mācīšanos. Varbut tur šo visu savādāk vajag uztvert :D Quote Link to comment Share on other sites More sharing options...
0 briedis Posted January 16, 2011 Report Share Posted January 16, 2011 (edited) Kāpēc neizlaboji, to ko teicu? $this.skaitit Kas tas tāds $this par mainīgo? Vai gadījumā nedomāji $(this) ? ..Un ja tu definē jaunu mainīgo, tad obligāti jāliek var atslēgvārds. nevis id = $(this).attr('id'); bet var id = $(this).attr('id'); Edited January 16, 2011 by briedis Quote Link to comment Share on other sites More sharing options...
0 waplet Posted January 16, 2011 Author Report Share Posted January 16, 2011 Ok paldies, nedaudz paskatījos un papētīju citu kodus un jquery piedavāto dokumentāciju. Beigās sanāk šādi un drīz jau būs countdown so simple cik var būt :D (function( $ ){ // there's no need to do $(this) because // "this" is already a jquery object // $(this) would be the same as $($('#element')); $.fn.start = function( time ) { $(this).skaitit($(this).attr('id'),120); // return this; }; $.fn.skaitit = function( id, time ) { $this = $('#' + id); $this.html(time); setTimeout( function() { $this.skaitit(id, time-1) } ,1000); }; })( jQuery ); Quote Link to comment Share on other sites More sharing options...
0 indoom Posted January 17, 2011 Report Share Posted January 17, 2011 pirmkārt, pašizpildošā funkcija nav nepieciešama, ja netiek izmantoti nekādi lokālie mainīgie. Otrkārt, id nav jāpadod, ja izmanto jQuery.fn. tas vienmēr būs this. Es taisītu kaut kā šitā, ja jau gribi kā jQuery pluginu jQuery.fn.skaitit = function(time){ return this.each(function(){ // atgriež jQuery objektu var localtime = time, // vajadzīgs, ja izmanto funkciju uz vairākiem elementiem uzreiz (closure) $self = jQuery(this), // saglabā objektu priekš lokālās timer funkcijas (closure) timer = function(){ // lokālā timer funkcija //if (localtime < 0) { return; } // pēc vajadzības $self.text(localtime--); setTimeout(timer,1000); // izsauc pats sevi }; timer(); // sākam timeri }); }; // izsauc jQuery(function(){ // onready jQuery('#timer2').skaitit(120); }); Quote Link to comment Share on other sites More sharing options...
0 waplet Posted January 17, 2011 Author Report Share Posted January 17, 2011 Okej, mācīšos , mācīšos Quote Link to comment Share on other sites More sharing options...
Question
waplet
Esmu galīgi balts jquerijā.
Taisu kodu, lai būtu countdowns.
$('#timer2').start(120);
saka, ka start is not a function?
Kas pa lietu?
Esmu totāls iesācējs iekš jquery.
Link to comment
Share on other sites
15 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.