2012-10-27 31 views
2

我想全球設置我的jquery移動應用程序中的每個元素,以支持數據迷你使用它。有沒有一種全球性的方式來做到這一點,不必爲每個元素添加data-mini ='true'到html?全球設置jquery移動到迷你

回答

1

它是一個註冊feature request,見Ability to use data-mini by default or on an entire container

這意味着,用當前版本可以做的最好的就是你所說的,爲所有表單元素添加屬性。

假設移動頁面不會有很多的元素,我不會說這是一個問題的所有:

​$('form *')​​​​​​​​.data('mini', true); 
+0

嗨,謝謝你的迴應。我已經嘗試過你建議的內容,並將data-mini =「true」添加到了標記中,但實際的控件並沒有變小。奇! –

+0

在我測試之前意外地提出了upvoted :-(...它至少不適用於jQuery 1.10.2/FF 31.0:在Firebug/HTML視圖中我看不到添加的屬性,但我可以在DOM中找到它或者通過查詢,但即使是'$('#mypanel')。enhanceWithin()'也沒有幫助('div#mypanel'包裝按鈕)。 –

3

今天我遇到了類似的問題。作爲屏幕分辨率檢測的一部分,我的要求是可以隨時更改爲迷你版本。無論如何,$('form *')​​​​​​​​.data('mini', true);也沒有爲我工作,但我有一個解決方法,但惱人的是。我有三個元素,我需要'迷你'。一個按鈕,一個文本輸入(嗯,真的是一個電子郵件輸入)和一個文本區域。

對於按鈕,我能夠使用$('button').buttonMarkup({mini: true});我使用開發人員JS控制檯驗證它確實工作。從那裏我還發現在jquerymobile文檔$('textinput').textinput({mini: true}),但是這不適用於我。

最後,在學習DOM之後,我嘗試在文本輸入和文本區域中簡單地添加類「ui-mini」,它似乎工作。

所以總結起來:

$('button').buttonMarkup({mini: true}); 
$('input').addClass('ui-mini'); 
$('textarea').addClass('ui-mini'); 
1

我使用jQuery Mobile的1.4.5,和下面的是最簡單的答案:

var $widgets = $.mobile.widgets; 

$.each($widgets, function(widget) { 
    $widgets[widget].prototype.options.mini = true; 
}); 

一切都很好,但。 .. listview不作任何更改。


所以我要補充:

$('ul[data-role=listview]').find('a').addClass('ui-mini'); 

上面所添加的代碼是如此的醜陋,我有這個替代它:

<ul data-role="listview"> 
    <li> 
     <a class="ui-mini">Hello World</a> 
    </li> 
</ul> 

只需添加ui-mini上課手動,不錯,多手一些^ o^