0

午前中ずっとこれを修正しようとしたので、できれば助けてください。

私はこのコードを持っています:

$(document).bind('pageinit', function(){
    var menuOpen;
    // Menu
    $('#menu-trigger').on('click', function(e){
        e.preventDefault();
        alert('click!');
        if(menuOpen != true) {
            $('.ui-page-active').animate({
                'margin-left': '390px'
            }, 300, function(){
                menuOpen = true
            });
            return false;
        } else {
            $('.ui-page-active').animate({'margin-left': 0}, 300, function(){menuOpen = false});
            return false;
        }
    });
});

私の問題は、「クリック!」アラートが表示されないことです。の付いた要素をクリックしてもid #menu-trigger、何も起こりません。

できることはすべて試しましたが、まだ結果は出ていません。

私のコードはscript、jQuery Mobile スクリプト インクルードのすぐ下のタグ内にあります。

PS: HTML コード フラグメントは次のとおりです。

<header data-role="header" class="with-logo">
  <a href="#" id="#menu-trigger" data-role="button" class="ui-btn-left"><img src="images/menu-trigger-icon.png"></a>
  <h1><img src="images/logo.png"></h1>
</header><!-- /header -->
4

2 に答える 2

1

アンカーの id 属性値からハッシュ記号を削除する必要があります。

アンカー タグは次のようになります。

<a href="#" id="menu-trigger" data-role="button" class="ui-btn-left">

イベント ハンドラー スクリプトは次のようになります。

<script>
    $(document).on('click', '#menu-trigger', function(e){
        // your code
    });
</script>

これが役立つことを願っています。

于 2012-10-20T16:41:36.883 に答える
0

ドキュメントではなく、 を持つ div に pageinit をバインドする必要がありdata-role = "page"ます。

また、HTML の外観によっては、間違った要素で「on」を使用している可能性があります。コードをクリックイベントにバインドする要素の親要素である必要があります。だからそれは好きです

$('#someparent').on('click', yourfunctionasdefinedabove, '#menu-trigger');

(menu-trigger が親の場合、この 2 番目の部分は無視してください)

于 2012-10-20T11:53:39.797 に答える