对于JQM中的外部链接,动态添加的链接上的触发器('click')不会传播
trigger('click') on a dynamically added link does not propagate for external links in JQM
我正试图在导航栏中使用jQuery Mobile的选择菜单作为导航工具。它将需要处理内部和外部链接。绑定到change
使得能够使用$.mobile.selectmenu()
小部件来获取所选链接,该链接是用URL和位置状态的自定义数据位构建的。然后将链接动态地附加到文档中,并调用.trigger('click')
。
http://jsfiddle.net/wZNMz/
无论绑定事件、返回值、事件传播争用和属性的排列如何,外部链接都不会起作用。内部链接运行良好。
引用jquery.mobile.navigation.js源触发单击应按预期工作,假设[rel='external']
匹配以启用默认URL处理。请注意,该插件在init上从<option>
标签中删除了链接,这需要添加链接和触发点击<select>
更改的所有技巧。
肮脏而明显的黑客行为是在外部设置window.location
并完成。这确实有效,但我不明白为什么有必要采取这种做法。任何想法或见解都将不胜感激!
创建一个链接并触发点击它似乎比使用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
});
}
});
以下是$.mobile.changePage()
的文档:http://jquerymobile.com/demos/1.1.1/docs/api/methods.html
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何使用jQuery自动打开页面上的所有链接
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jquery动画可以通过编程链接吗
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 单击页面上的链接后高度发生变化
- 将纯文本URL转换为可单击链接
- python-selenium-点击上升链接
- 一点javascript元编程&可链接的设置器
- ng视图外的链接重定向到ng视图内的页面
- 如何调用“;链接_;在onclick事件上使用Javascript
- 链接所有<a>Meteor
- 如何在Angular中的表的所有单元格中添加链接
- 通过链接重定向不;我不在jstree中工作
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 对于JQM中的外部链接,动态添加的链接上的触发器('click')不会传播
- 如何防止图像映射区域点击传播到链接