2012-09-03 56 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' });