0

私は2つのドロップダウンを持っています.1つはIDを持っていて、もう1つは持っていません.Ajaxリクエストとドロップダウンリストを表示するアクションをトリガーしたいと思います. そして、これは私がそれをやろうとしている方法ですが、いくつかの誤動作があります。この場合、トリガーされたajaxリクエストですが、ドロップダウンリストを表示すると、両方のドロップダウンリストが表示されます。

          <li class="dropdown top-dropdown">
            <a href="#" class="dropdown-toggle" style="padding-right:0;" data-toggle="dropdown">hola</a>
            <ul class="dropdown-menu">
              <li>
                <a href="/hola"><i class="icon-user"></i>
                  Profile
                </a>
              </li>
              <li>
                <a href="/hola"><i class="icon-wrench"></i>
                  Settings
                </a>
              </li>              
            </ul>
          </li>

          <li id="hola" class="dropdown">
            <a id="go_do_something" href="<%= url %>" class="dropdown-toggle disabled" style="padding-right:0;" data-toggle="dropdown">           
              <b id="noti_container">
                <i class="icon-bullhorn"></i>
              </b>
            </a>
            <ul class="dropdown-menu">              
                <li>
                  <a href="/hola">
                    <i>added on yesterday</i>
                  </a>
                </li>              
              <li class="divider"></li>
              <li>
                <a href="#">
                  See All
                </a>
              </li>
            </ul>  
          </li>

$("#go_do_something").live("click", function(){      
    var update_user_last_n = $(this).attr('href');

    $.ajax({
      type: 'GET',
      url: update_user_last_n
    }).done(function(xhr, status) {            
      $("#hola").dropdown('toggle');
    }).fail(function(xhr, status) {

    });  

  });

それ以外の場合、 Bootstrap Docsの describe のように href の代わりに data-target 属性を使用しようとしましたが、ブラウザーでエラーが発生しました。

Uncaught Error: Syntax error, unrecognized expression: {url_on_data-target}
4

1 に答える 1

0

これを行うには洗練された方法がほとんどですが、問題を解決する回避策があります。

  $("#go_do_something").live("click", function(event){
    event.preventDefault();  
    var this_a = this;  
    var url = $(this_a).attr('href');

    $.ajax({
      type: 'GET',
      url: url
    }).done(function(xhr, status) {                  
      $(this_a).removeClass("disabled");
      $(this_a).click();
    }).fail(function(xhr, status) {

    });  

  });
于 2012-12-20T17:00:45.667 に答える