3

twitter-bootstrapを使用してトップバーメニューを作成し、正常に動作しています

.topbar
  .topbar-inner
    .container-fluid
      {{#view Mediawrap.menuView id="menuView"}}
      = link_to 'Mediawrap', root_path, {:class=>"brand"}
      %ul.nav
        %li.menu
          = link_to 'Search', "#", {:class=>"menu"}
          %ul.menu-dropdown
            %li
              = link_to "Hide date search", "#"
            %li
              = link_to "Hide index search", "#"
            %li
              = link_to "Hide advance search", "#"
            %li
              = link_to "Clear search", "#"
            %li.divider
            %li
              = link_to 'Save to new folder ...', "#"
            %li
              = link_to 'Replace a folder', "#"
      {{/view}}

Sproutcoreをページに追加しようとするまで。ドロップダウンが機能しなくなりました。SproutcoreがHTMLタグを生成する前に「$(document).ready(function()」が呼び出されているためだと思います。

$(document).ready(function() {
  alert("bank");
  $(".topbar").dropdown();
});

sproutcoreがHTMLタグの生成を終了した後、document.readyでコマンドを呼び出すにはどうすればよいですか?

4

2 に答える 2

6

また、アプリケーション内でレディコールバックを使用してみることもできます。

App = SC.Application.create({
  ready: function() {
    this._super();
    $(".topbar").dropdown();
  }
});

ここでthis._super()を呼び出さなければならないのは間違いだと思いますが、すぐに修正されます。

于 2011-12-10T02:39:32.067 に答える
0

「didInsertElement」コールバックによってSproutcoreを生成した後、TwitterBootstrapスクリプトを呼び出します。

Mediawrap.menuView = SC.View.extend({
  color: 'blue',

  didInsertElement: function() {
    this._super();
    $(".topbar").dropdown();
  }
})

"didInsertElement" <はオンラインドキュメントにはありませんが、自分で生成できます

于 2011-11-23T07:58:53.767 に答える