Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Dupa 20 ani de facultate, am uita...
 Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...
 Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio
 Un nou pericol pt batrani

Ar trebui sa vindem imobiliarele ...

Dupa renuntarea la aparat dentar

pelerinaj in Balcik
 

[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