帮助为 jQueryMobile 制作菜单按钮
jquery 和 jquerymobile 的新手。
我想做的就是隐藏主菜单,并在顶部导航栏上创建一个“菜单”按钮。当用户单击此按钮时,会出现一个弹出窗口,其中包含“顶部菜单”。
我作弊了,在 mobile.css 上,我将“顶部菜单”设置为“显示:无”以最初隐藏它。
编辑
已经接近了,但并不完美。现在,单击菜单(正在寻找 onTouch 或 onTap 但找不到 API 信息)菜单就会出现。有没有一种方法可以让它不显示而是在弹出窗口上打开?
此外,由于某种原因,数据主题或图标也没有显示。
$(document).ready(function(){
$('#header').append('<div data-role="navbar"><ul><li class="mainMenu"><a href="#" data-iconpos="top" data-icon="grid" data-theme="b">Menu</a></li><li><a href="#">facebook</a></li><li><a href="#">Twitter</a></li></ul></div>');
$('.mainMenu').click(function() {
$('#top-menu').toggle('fast', function() {
// Animation complete.
});
});
});
new to jquery and jquerymobile.
All I want to do is hide the main menu, and create a "Menu" button on the top nav bar. When user clicks on this button a pop up appears with the "top-menu".
I cheated and on the mobile.css I turned the "top-menu" to display:none to initially hide it.
EDIT
Got it closer, but not perfect. Now on Menu click (was looking for onTouch or onTap but couldn't find API info) menu appears. Is there a way that instead of it appearing it opens on a pop up window?
Also, for some reason data theme or icon not showing up either.
$(document).ready(function(){
$('#header').append('<div data-role="navbar"><ul><li class="mainMenu"><a href="#" data-iconpos="top" data-icon="grid" data-theme="b">Menu</a></li><li><a href="#">facebook</a></li><li><a href="#">Twitter</a></li></ul></div>');
$('.mainMenu').click(function() {
$('#top-menu').toggle('fast', function() {
// Animation complete.
});
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JQM CSS 不适用于您手动添加到 DOM 的内容。您必须对该项目调用
.page()
。有关详细信息,请参阅 http://jquerymobiledictionary.dyndns.org/faq.html - 有关 DOM 添加的问题
[编辑]
这可能比破解它更好: http:// jquerymobile.com/demos/1.0a2/#docs/toolbars/bars-fullscreen.html
[作为对您编辑的回应]
首先 - 尽量不要使用 javascript 来做不需要的事情。如果不需要,为什么要使用 javascript 填充标头呢?你在那里没有使用任何变量。
第二件事 - 你没有阅读我的教程。如果您在文档准备好后创建新的 DOM 内容,则不会应用 jquery mobile 特定的内容。如果这样做,则必须对新内容调用
.page()
。这就是为什么它仍然不起作用。事件可在文档和演示部分http://jquerymobile.com/demos/1.0a2/ 只需点击
事件
。最后 - 手机中没有弹出窗口。如果您需要对话框,请查看 JQM 文档中的对话框。
Jquery 是一种与 javascript 完全不同的方法,jquery mobile 也是一个新想法。在您了解 jqm 及其用途之前,您从 jquery 获得的直觉和经验将在一段时间内毫无用处。
如果您阅读一些有关渐进增强的内容,这种情况可能会发生得更快。
祝你好运。
The JQM CSS is not applied to what you add manually to the DOM. You have to call
.page()
on that item.For details see http://jquerymobiledictionary.dyndns.org/faq.html - question about DOM additions
[edit]
This might be better than hacking it: http://jquerymobile.com/demos/1.0a2/#docs/toolbars/bars-fullscreen.html
[as a response to your edit]
First of all - try not to use javascript for what it's not needed. Why fill the header with javascript if you don't need it? You didn't use any variables there.
Second thing - you didn't read my tutorial. NO jquery mobile specific stuff will be applied if you create new DOM content after document is ready. If you do that, you have to call
.page()
on new content. That's why it still doesn't work.Events are avaliable in the docs&demos section http://jquerymobile.com/demos/1.0a2/ just have to click
events
.Finally - there are no popups in mobile phones. If you ment a dialog take a look at dialogs in JQM docs.
Jquery was a totally different approach to javascript and jquery mobile is also a new idea. Your intuitions and experience from jquery will remain useless for some time, until you get the idea of jqm and what it's for.
This might happen quicker if you read a bit on progressive enhancement.
Good luck.