2012-09-03 94 views
1

我想要按照大綱in this thread動態更改分割按鈕列表視圖的顏色樣本,方法是更改​​數據主題。有趣的是,當我在JavaScript中放入一個警報聲明時,該方案起作用,但是當我將警報提出時,這不起作用。動態更改分割按鈕列表視圖中的數據主題問題

下面是示例:

任何建議,爲什麼這正在發生,我可能會錯過什麼?謝謝。

回答

1

我不太確定原因。但是,這是我將如何重新寫你在做什麼(這似乎解決了這個問題):

首先,從HTML中刪除您的內嵌JavaScript(onclick="toggleChecked('2', 'TR02')")。

接下來,以下JavaScript替換您toggleChecked()功能:

$(document).ready(function(){ 
    $('a[id^="star"]').on("click", function(){ 

     if ($(this).data("theme") == "d") { 
     $(this).buttonMarkup({ theme: 'e' }).button(); 
     } else { 
     $(this).buttonMarkup({ theme: 'd' }).button(); 
     } 
    }); 
}); 

以上是事件偵聽器,這將檢查被點擊與id任何錨開始star時。

刷新按鈕似乎有點bug,儘管重新生成按鈕,但往往來自上一個主題的類仍然存在。


UPDATE

其實報廢以上,這似乎是實現選擇按鈕的這樣一個令人費解的方式。爲什麼不只是改變CSS,使用上述爲指導,取出內嵌樣式並使用以下的jQuery:

$(document).ready(function(){ 
    $('a[id^="star"]').on("click",function(){ 
     $(this).toggleClass("ui-btn-pressed"); 
    }); 
}); 

這裏是一個jsbin:http://jsbin.com/ifodij/8/edit

+0

感謝您花時間回覆。我也需要ID後面的星號,或者直接傳遞給一個函數(這正是我正在嘗試做的),或者通過其他方式。我需要更新主題並做一些其他的事情。有任何想法嗎? –

+0

移動「$(this).toggleClass('ui-btn-pressed');」到toggleChecked()函數似乎很好地解決它。再次感謝。 –

+0

沒問題。使用我的代碼,你可以通過類似'var id_number = $(this).attr('id')來取得id的編號。 '。只需在toggleClass行後面彈出即可。 http://jsbin.com/ifodij/9/edit – Jeemusu

0

不幸的是,上述接受的答案因此未爲我工作改變拆分圖標主題, 我解決了我的問題表單here$(this).find('span.ui-btn').buttonMarkup({ theme: 'b' });