我有一些链接有事件绑定到他们和一些链接没有。
这些链接的点击事件是由选择框中的更改触发的。
如果没有绑定该链接的事件,jquery是否有办法访问链接?
我不想在select box vlaue属性中引用url,我想引用anchor标记中的url。
类似(伪代码) -
if (link.hasEventHandler('click')){
trigger click
} else {
window.location = link.attr('href')
}
编辑 - 有一个插件可以完成我需要做的事情 - https://github.com/sebastien-p/jquery.hasEventListener
文件大小是一个问题,所以我想避免使用它。
我正在使用最新的jquery,所以不能使用.data('events')
答案 0 :(得分:0)
您可以通过Twitter Bootstrap(http://twitter.github.com/bootstrap/components.html#buttonDropdowns)实现Dropdown按钮。 Bootstrap还允许您自定义下载。当你只选择下拉列表时,它会出现~40kb。它甚至不需要jQuery,因为它都是CSS。
答案 1 :(得分:0)
查看代码,您必须选择具有href属性的链接,该链接与组合框中的选定值相同。类似的东西:
$('#nav').on('change', function(event) {
var targetHref = $(this).find("option:selected").val();
$('a[href="'+targetHref+'"]').each(function() {
$(this).trigger('click');
});
});
假设您的链接有点击事件。如果没有,只需为链接指定相同的类,并为该类编写一个click事件,将窗口位置设置为该对象的href属性。
答案 2 :(得分:0)
据我所知,你不能在JS中'伪造点击'。 click事件触发器只是触发onClick JS事件,并且不会完全模拟单击浏览器中的链接。但是,您需要做的就是使用JS获取href并重定向到该页面。我用几行来更新你的小提琴。
$('a:not(.event-bound)').click(function(event) {
window.location.href = $(this).attr('href');
});
选择器选择所有没有类event_bound
的锚标签。