2011-09-30 41 views
0

jQuery Mobile通過添加類ui-corner-all自動舍入輸入元素的所有角落。我注意到,如果我在Chrome檢查器中手動將此類更改爲ui-corner-left,那麼我在左側(頂部和底部)正確獲取只有圓角。這當然可以很容易地使用jQuery的一個行來完成,如jQuery Mobile:明確覆蓋所有角落的舍入

$('#myid').removeClass('ui-corner-all').addClass('ui-corner-left'); 

我的問題是,有沒有一種方法,我可以指示jQuery Mobile的應用該類直線距離,而無需執行這一額外的位JQM完成工作後的代碼?

+2

您可以修改JQM源代碼與其他更換一類,或者你可以修改JQM CSS來製作UI的角落,所有的工作方式你想要它。但我認爲你現在的解決方案應該沒問題。爲什麼要關注單行代碼?你看過頁面加載時已經有多少JQM了嗎?那一小段代碼不應該造成那麼大的麻煩。 –

+0

是的你是對的 - JQM已經運行了這麼多的代碼,一行代碼在性能方面並沒有真正的區別。我的真正動機是試圖保持UI的集中和「聲明」。但是通過這個解決方案,我的UI最終不僅在CSS和標記本身之間分裂,而且在JS代碼的一些奇數位之間也分裂了。 –

回答

0

基本上可以應用以下內容,但是您的擔心是無需額外的代碼執行,讓我們看到我們有機會獲得它,即使我看到相同的問題,但以下是我的解決方案。

$('div').live('pageshow',function(event){ 
    $('#myid').removeClass('ui-corner-all').addClass('ui-corner-left'); 
}); 
+1

你所做的只是複製和粘貼上面寫的相同的代碼;將它包裝在'pageshow'處理程序中與我的問題無關。 –

0

您可以通過在index.html文件中指定所需的jquery移動類來覆蓋默認值。一個很好的例子是,而不是,:

<ul id='myid' data-inset='true' data-theme='a' data-role='listview' class='ui-listview ui-listview-inset ui-shadow'> 

這將自動插入這個

class ui-corner-all 

那麼您需要添加自己的等級:

<ul id='myid' data-inset='true' data-theme='a' data-role='listview' class='ui-listview ui-corner-left ui-listview-inset ui-shadow'> 

在Firefox中,用戶界面角-all類不會自動添加給我,也許你正在使用舊版本的jquery mobile並需要升級。 如果您想在javascript文件中動態執行此操作:

$("#my_page_id").live("pagecreate",function(){ 
    var ul = $("<ul id='myid' data-inset='true' data-theme='a' data-role='listview' class='ui-listview ui-listview-inset ui-corner-left ui-shadow'>"); 
    ul.append($('<li class="ui-li ui-li-static ui-body-a ui-corner-left">').append("Code Slayer!!!")); 
    $('mydiv_in_mypage').html(ul); 

});

由於在重新編寫div的內容時會自動擦除舊的內容。如果您將在列表中顯示大量信息,則可能需要使用

$.mobile.showPageLoadingMsg('a','Page Loading', true); 

然後在頁面完全顯示時隱藏該消息。

0

哎只要你能做到這樣

<a href="#panel" data-corners="false"></a>