2015-08-17 21 views
5

Jak mogę wywołać funkcję niszczenia w elevateZoom? Dokumentacja nie ma żadnej wzmianki o tym, jeśli zrobię szybki ctrl+f w source, widzę opcję dla disable, Ale nie jestem pewien, jak wyłączyć lub zniszczyć elevateZoom?Jak wyłączyć elevateZoom?

Mam następujący kod:

HTML:

<img id="img_01" src="http://unilaboralgirona.com/wp-content/uploads/2015/03/ZContact.jpg" data-zoom-image="http://unilaboralgirona.com/wp-content/uploads/2015/03/ZContact.jpg"/> 

JS:

$("img").elevateZoom({ zoomType : "inner", cursor: "crosshair" , easing : true }); 

setTimeout(function(){} 
     // how to destroy elevateZoom on image ? 
,2000); 

Teraz po 3 sekundach, życzę funkcji zoom nie działa (robie to, aby wyizolować mój problem, teraz proszę nie zadawać sprzecznego pytania, dlaczego do cholery robię to). Co mam zrobić w urządzeniu setTimeout(), że elevateZoom przestaje działać.

FIDDLE HERE

+1

Try dolną rozwiązanie tutaj: https://github.com/elevateweb/elevatezoom/issues/8 –

+0

@ClaytonLeis będzie patrzeć na to, jeśli jest poprawny, powiem ci, że możesz go dodać jako odpowiedź! –

Odpowiedz

4

Od Elevate Zoom nie mają rodem zniszczyć, musisz zrobić coś takiego:

setTimeout(function(){ 
     $.removeData($('img'), 'elevateZoom'); 
     $('.zoomContainer').remove(); 
},2000); 

Działa to dla mnie. Mam nadzieję że to pomoże!

+0

IMO, lepiej będzie wyłączyć polecenie elevateZoom, zamiast go zniszczyć, ponieważ naprawdę nie ma żadnego fajnego rozwiązania do bezpiecznego niszczenia go. Zobacz [@Jasmeet Singh's solution] (https://stackoverflow.com/a/39996857/842768). – giovannipds

2

O wiele lepszym rozwiązaniem jest wbudowany w elevatezoom:

var ezApi = $('#primaryImage').data('elevateZoom'); 
ezApi.changeState('disable'); 
+1

Musiałem również ukryć '$ ('. ZoomContainer')' div, ponieważ został nałożony na coś innego – andrewtweber