Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
TV 4K

Bga reball cpu telefoane

Mancare fara grasimi trans (trans...

Antena interna wifi pentru card m...
 La mulți ani @AlexFCSB4!

La mulți ani @silcar!

La mulți ani @Cipry7!

[General](Dupa-criza) Preturi mai...
 Change csc on samsung

Ce telefon recomandați intre...

Piese originale

Asigurare RCA pareri
 Impozit pe profit in euro?

Cum functioneaza acest mouse wire...

Ce SSD are acest laptop Asus?

Usi Culisante de sticla Etanse(de...
 

[jQuery]Acces variabile exterior handler loadedmetadata

- - - - -
  • Please log in to reply
No replies to this topic

#1
TorchMan

TorchMan

    Junior Member

  • Grup: Members
  • Posts: 226
  • Înscris: 21.10.2012
Salut,

Am urmatorul cod:

$(document).ready(function(){
  var videoCache = $('#bg-video');
  /* We get the width and the height of the video file*/
  $('#bg-video').on('loadedmetadata',function(){
	videoCache.data('width', videoCache.width());
	videoCache.data('height', videoCache.height());
	$('#log').text(videoCache.data('width') + ' ' + videoCache.data('height'));
  });
});


Am nevoie sa initializez data-width si data-height cu width-ul si height-ul unui video si apoi ma folosesc de un paragraf cu idul 'log' sa verific daca totul e ok.
De exemplu daca am un video cu rezolutia 1364 x 768, acel paragraf ar trebui sa contina textul "1364 768".
In forma actuala, paragraful afiseaza dimensiunile corect, dar daca mut linia in afara handler-ului,

$(document).ready(function(){
  var videoCache = $('#bg-video');
  /* We get the width and the height of the video file*/
  $('#bg-video').on('loadedmetadata',function(){
	videoCache.data('width', videoCache.width());
	videoCache.data('height', videoCache.height());
  });

  $('#log').text(videoCache.data('width') + ' ' + videoCache.data('height'));

});


Se afiseaza "undefined undefined". Presupun ca acea scriere in paragraf are loc inainte de initializarea din handler, asta fiind probabil si motivul pentru care nu sunt inca definite.
Am incercat ca si rezolvare sa declar o variabila globala si sa o initializez cu "false", urmand sa o setez pe "true" in momentul in care se iese din handler, iar intr-o bucla while ar trebui sa astept terminarea functiei respective.
var handlerIsDone = false;
$(document).ready(function(){
  var videoCache = $('#bg-video');
  /* We get the width and the height of the video file*/
  $('#bg-video').on('loadedmetadata',function(){
	videoCache.data('width', videoCache.width());
	videoCache.data('height', videoCache.height());
	handlerIsDone = true;
  });
  while(!handlerIsDone){}
  $('#log').text(videoCache.data('width') + ' ' + videoCache.data('height'));

});


Doar ca lucrurile nu stau chiar asa, aparent "handlerIsDone" nu e niciodata setat pe true, iar acel while nu se opreste deci niciodata.

Care ar fi solutia sa pot accesa data-width si data-height din exterior ?

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate