2013-02-23 63 views
0

我有以下导航栏自举的innerHTML:动态地改变引导按钮

<div class="navbar navbar-inverse navbar-fixed-top"> 
    <div class="navbar-inner"> 
     <div class="container"> 
      <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
      </button> 
      <a class="brand">J+ Iso&epsilon;ditor</a> 
      <div class="nav-collapse collapse"> 
       <ul class="nav"> 
        <div class="btn-group"> 
         <button class="btn" id='bts-display-button'></button> 
         <button class="btn dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span></button> 
         <ul class="dropdown-menu" id="bts-dropdown"> 

         </ul> 
        </div> 
       <button class="btn">New BTS</button> 

       </ul> 
      </div><!--/.nav-collapse --> 
     </div> 
    </div> 
</div> 

我动态加载<li>元件到dropdown_menu。这工作正常。我也试图将bts-display-button的innerHtml更改为单击的<li>元素的值。

我的CoffeeScript代码来实现,这是下面:

class Toolbar 
    constructor:() -> 

    @selected_BTS = undefined # The current selected BTS in the BTS dropdown 

    @create_toolbar() 
    @bts_dropdown_selecion_clickhandler() 

    create_toolbar:() => 

    # Add new bts to drop down 
    addBTS: (name) => 
    $('#bts-dropdown').append "<li>#{name}</li>" 


    # Set the caption of the bts-dropdown button to what is selected 
    bts_dropdown_selecion_clickhandler:() => 
    $('body').on 'click', '#bts-dropdown li', -> 
     console.log $(this).html() 
     Toolbar.selected_BTS = $(this).html() 
     $('#bts-display-button').html(Toolbar.selected_BTS) 

例如,如果在dropdown_menu元素<li>Hello</li>用户点击,则控制台正确记录值“你好”,但bts-display-button的innerHTML保持不变。

注意:我所有的脚本都在html的底部,所以当上面的代码执行时DOM就绪。

请有人能帮助我,因为我已经坚持了2天。任何帮助深表感谢。

+0

多少元素'id'设置为'BTS-显示button'有哪些? – Alexander 2013-02-23 17:14:11

+0

只是代码中显示的一个 – 2013-02-23 17:14:45

回答

0

更换:。

$( '#BTS-显示按钮')HTML(Toolbar.selected_BTS)

$( '身体')找到('#bts-显示按钮')。html(Toolbar.selected_BTS)

使它工作。

我已经打开了一个新问题disscusing这可能是为什么这里的情况:Why does JQuery .find work over just selecting the element?