2014-12-04 28 views
0

我在手機Cordova上遇到了一個非常簡單的函數問題,首先爲元素設置寬度/高度,然後在元素內部的跨度上工作(大文本插件 -jQuery CSS在手機上無法正確觸發

<script type="text/javascript"> 
    $(".blockstart").each(function() { 
     $(this).css({ 
      "width": blockwidth, 
      "height": blockwidth 
     }); 
     alert("css change"); 
    }); 
    $(".blockstart").find("span").bigText(); 
</script> 

發生了什麼事都沒有涉及這個插件雖然):

  1. 的CSS提醒每個blockstart元素(雖然頁面上沒有明顯的變化)。

  2. 工作在span元素上完成,但不正確,因爲父元素沒有設置/ height。

  3. 現在只有父級的寬度/高度(blockstart)發生變化。

這只是發生在移動。這讓我瘋狂,有什麼建議嗎?


我甚至嘗試了以下功能,但並非所有的時間(在手機上)。

  function runbigtext(div) { 
       var initbigtext = setInterval(function() { 
        if ($("" + div + "[style*='height']").length == $(div).length) { 
         clearInterval(initbigtext); 
         $(div).find("span").bigText(); 
        } 
       }, 50); 
      } 
      runbigtext(".blockstart"); 

這有時工作,有時不(要正常工作,div.blockstart應該有一個寬度和高度設置,並且與這些尺寸的頁面可見的。bigtext功能的工作原理是使跨度文本元素內適合父div的大小。)。這隻發生在手機上。

我無法解釋發生了什麼。

+3

無關的你問關於,你知道嗎?你不需要每個循環?如果您將相同的寬度和高度應用於所有元素,則可以直接在'$(「。blockstart」)'上調用'.css()'。 – nnnnnn 2014-12-04 05:32:34

回答

0

只是一個簡單的解決方案,通過將延遲到你的工作,以便有時間對你的工作之前完成所有的CSS樣式,開始

$(".blockstart").find("span").delay(1000).bigText(); 
0

刪除警報,U可以使用控制檯,而不是, 並調用內部功能每次循環傳遞$以此爲參數,因此,如果由於緩慢渲染異步過程不重疊該

就叫每個循環中的功能,然後在那裏的CSS,

相關問題