2015-08-27 6 views
6

Nach http://mdlhut.com/2015/07/where-is-the-mdl-drawer-icon/ sollte es so lange funktionieren, wie ich componentHandler.upgradeDom() aufrufen, nachdem ich das HTML dynamisch geladen habe. Um sicherzustellen, dass ich das upgradeDom korrekt anrufe, habe ich die Schaltfläche hinzugefügt, um zu sehen, ob der Ripple-Effekt hinzugefügt wird. Und die Schaltfläche wird aktualisiert, aber das Hamburger-Symbol wird nicht angezeigt.Hamburger-Symbol wird nicht angezeigt, auch wenn ich componentHandler.upgradeDom() aufrufen;

Wenn ich das HTML inline, erscheint das Hamburger-Symbol.

+0

Haben Sie laden sehen, ob es vielleicht ein falsches CSS-Styling hat wie Farbe weiß? –

+0

Aufruf von UpgradeDom() klingt wie ein Hack. Was ist die wahre Lösung? – IcedDante

Antwort

0

Da Sie den HTML-Code dynamisch laden, sollten Sie Folgendes in Ihrer Init-Funktion ausführen, nachdem die DOM geladen ist. Beachten Sie, dass die setInterval Funktion DOM hat genug Zeit, um sicherzustellen, bevor die Ausführung die componentHandler Methode

jQuery

$(document).ready(function() { 
     setInterval(function() { 
      componentHandler.upgradeAllRegisteredElements(); 
     }, 1000); 
}); 

DOM API

document.addEventListener('DOMContentLoaded', function() { 
     setInterval(function() { 
      componentHandler.upgradeAllRegisteredElements(); 
     }, 1000); 
}); 
+0

Hallo, habe schon mit setInterval und dom ready versucht. Der Button ist so upgegraded, irgendwie funktioniert es meiner Meinung nach. Ich weiß nur nicht, warum das Hamburger-Icon nicht erscheint. – Sathees

Verwandte Themen