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

您应该将 pageinit 绑定到具有 div 的 div,data-role = "page"而不是文档。

还取决于您的 html 的外观,您可能在错误的元素上使用了“on”。它必须是要将代码绑定到单击事件的元素的父元素。所以就像

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

(如果 menu-trigger 是父级,请忽略第二部分)

于 2012-10-20T11:53:39.797 回答