触发点击时访问链接

时间:2012-11-07 15:11:24

标签: javascript jquery

我有一些链接有事件绑定到他们和一些链接没有。

这些链接的点击事件是由选择框中的更改触发的。

See this fiddle

如果没有绑定该链接的事件,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')

3 个答案:

答案 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并重定向到该页面。我用几行来更新你的小提琴。

http://jsfiddle.net/9j8QS/1/

$('a:not(.event-bound)').click(function(event) {
    window.location.href = $(this).attr('href');
});

选择器选择所有没有类event_bound的锚标签。