0

我正在尝试在导航栏中使用 jQuery Mobile 的选择菜单作为导航工具。它将需要处理内部和外部链接。绑定到change允许使用$.mobile.selectmenu()小部件来获取已使用 URL 和位置状态的自定义数据位构建的选定链接。然后链接被动态附加到文档并被.trigger('click')调用。

http://jsfiddle.net/wZNMz/

无论绑定事件、返回值、事件传播争论和属性如何排列,外部链接都将不起作用。内部链接工作得很好。

假设匹配启用默认 URL 处理,引用jquery.mobile.navigation.js 源触发点击应该按预期工作。[rel='external']请注意,该插件会<option>在初始化时从标签中删除链接,这需要添加链接和触发点击<select>更改的所有技巧。

肮脏而明显的技巧是window.location在外部设置并完成。这确实有效,但我不明白为什么有必要诉诸于此。任何想法或见解表示赞赏!

4

1 回答 1

0

创建一个链接并触发点击它似乎比使用 hacky 多了window.location,因为这个特定的原因,将用户转发到一个新页面。对于内部链接,您可以通过$.mobile.changePage(). 这是一个例子:

$('#mobile-nav').bind('change', function(e) {
    var nav_to = $(this).selectmenu('selected');

    if (nav_to.data('locality') === false) {
        //this is external, so use window.location
        window.location = nav_to.data('item-url');
    } else {
        //this is internal, so use $.mobile.changePage()
        $.mobile.changePage(nav_to.data('item-url'), {
            //here you can set options such as transition type and direction
        });
    }
});

这是文档:http $.mobile.changePage(): //jquerymobile.com/demos/1.1.1/docs/api/methods.html

于 2012-08-01T21:46:38.500 回答