2013-07-19 32 views
0

我在jquery mobile中有一個簡單的(新手在這裏)任務。更改應用了自定義樣式的按鈕的文本。我可以在'pageinit'事件中改變文本而沒有問題,但是我失去了過程中的自定義樣式。已經閱讀了大量的文章,但仍然缺乏工作解決方案。 html頁面的jquery mobile在按鈕文字改變後丟失了自定義樣式

摘錄如下阿賈克斯

CSS

#goal .ui-btn-inner { 
    text-align: center; 
    background: chartreuse; 
    ui-disabled: true; 
} 

按鈕加載設置樣式

<div data-corners="false" data-role="controlgroup" > 
    <a href="#" data-role="button" id="goal" > 
    text to be changed 
    </a> 
</div> 
... 

這裏是jQuery Mobile的代碼改變按鈕上的文字。

$(document).delegate('#problem_screen', 'pageinit', function() { 
    $('#goal').on('click', function() { 
    console.log('goal clicked'); 
    }); 
    $('#goal .ui-btn-text').text('New button text'); 
}); 

感謝

+2

它是如何失去的風格,你可以提供一個快照看起來在這裏很好,文字按鈕改爲單擊http://jsfiddle.net/Palestinian/xWNcS/ – Omar

+0

羅斯:當我嘗試,我得到「未捕獲的錯誤:在初始化之前無法在按鈕上調用方法;試圖調用方法'刷新'「。也許刷新必須在其他地方完成 –

+0

Omar:問題出在ajax過渡到頁面之後我掛鉤pageinit事件jqm似乎應用其常規按鈕樣式,我失去了我的自定義樣式如果你運行'standalone'頁面,它可以正常工作 –

回答

0

最後得到了這個工作。我的第一個JQM錯誤是在多頁面應用程序的每個頁面上定義自定義樣式。這是錯誤的 - 您必須在一個位置定義所有的自定義樣式,通常是每個頁面包含的樣式表文件。另一個錯誤是在不同的頁面上有相同的id值。錯誤ID值在整個應用程序中必須是唯一的。

適用(在這種情況下,增強了風格)是.addClass(「)在我來說,我所定義的樣式如下API:

.goal-style { 
text-align: center; 
background: charteuse; 
ui-disabled: true; 
} 

現在,經過我更新按鈕的文本我說: ?

$('#goal').addClass('goal-style'); // Note: do not use '.goal-style'