触发点击时访问链接[重复]
Posted
技术标签:
【中文标题】触发点击时访问链接[重复]【英文标题】:Visit link when triggering click [duplicate] 【发布时间】:2012-10-27 16:07:46 【问题描述】:我有一些链接绑定了事件,而一些链接没有。
这些链接的点击事件是由选择框中的更改触发的。
See this fiddle
如果没有事件绑定该链接,jquery 是否可以访问该链接?
我不想引用选择框 vlaue 属性中的 url,我想引用锚标记中的 url。
类似(伪代码) -
if (link.hasEventHandler('click'))
trigger click
else
window.location = link.attr('href')
编辑 - 有一个插件可以完成我需要在这里做的事情 - https://github.com/sebastien-p/jquery.hasEventListener
文件大小是个问题,所以我想避免使用它。
我使用的是最新的 jquery,所以不能使用 .data('events')
【问题讨论】:
你可以使用这个插件来检查事件监听器:github.com/sebastien-p/jquery.hasEventListenerFile size is an issue, so I'd like to avoid using it.
它的大小是
感谢 Null,但我继承了一个已规定文件大小限制且已包含 jquery 的项目。
如果你使用的是$(elem).data("events")
我用的是最新版的jquery
【参考方案1】:
据我所知,您不能在 JS 中“假点击”。 click 事件触发器只是触发 onClick JS 事件,并不完全模拟点击浏览器中的链接。但是,您需要做的就是获取 href 并使用 JS 重定向到该页面。我用几行来更新你的小提琴。
http://jsfiddle.net/9j8QS/1/
$('a:not(.event-bound)').click(function(event)
window.location.href = $(this).attr('href');
);
选择器选择所有没有类event_bound
的锚标记。
【讨论】:
喜欢横向思维,非常感谢。【参考方案2】:您可以从 Twitter Bootstrap (http://twitter.github.com/bootstrap/components.html#buttonDropdowns) 实现下拉按钮。 Bootstrap 还允许您自定义下载。当您仅选择下拉菜单时,它大约为 40kb。它甚至不需要 jQuery,因为它都是 CSS。
【讨论】:
【参考方案3】:查看您的代码,您必须选择具有 href 属性的链接,该属性与组合框中的选定值相同。比如:
$('#nav').on('change', function(event)
var targetHref = $(this).find("option:selected").val();
$('a[href="'+targetHref+'"]').each(function()
$(this).trigger('click');
);
);
假设您的链接有一个点击事件。如果没有,只需为您的链接提供相同的类并为该类编写一个单击事件,以将窗口位置设置为对象的 href 属性。
【讨论】:
以上是关于触发点击时访问链接[重复]的主要内容,如果未能解决你的问题,请参考以下文章