2012-10-20 103 views
0

我一直试图解决这个问题,所以请帮助我,如果你可以。jQuery Mobile点击事件没有解雇?

我有这样的代码:

$(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脚本包含的下方。

P.S:下面是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 --> 

回答

0

你应该pageinit被结合到具有data-role = "page",不记录一个div。

也取决于你的html的样子,你可能会在错误的元素上使用'on'。它需要是要将代码绑定到单击事件的元素的父元素。 所以它就像

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

(如果菜单触发是父,请忽略这第二部分)

+0

感谢您的回答!通过父母,你是指该元素的直接父母还是父母的父母? – bitstream

+0

我不知道我明白:(我已经更新了我正在使用的html段的问题 – bitstream

1

你必须删除锚点的id attritute值散列符号。

锚标记应该是这样的:

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

和事件处理程序的脚本应该是这样的:

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

我希望这有助于。

+0

OMG!我是一个白痴:D非常感谢您的注意!这是一个很好的例子,结束:)再次感谢! – bitstream