2012-11-07 95 views
0

我有一些链接有事件绑定到他们和一些链接没有。触发点击时访问链接

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

See this fiddle

是否有jQuery的一种方式来访问一个链接,如果没有事件中绑定该链接?

我不想在选择框vlaue属性中引用url,我想引用anchor标记中的url。

像(伪代码) -

if (link.hasEventHandler('click')){ 
    trigger click 
} else { 
    window.location = link.attr('href') 
} 

编辑 - 有,做exactley什么,我需要在这里做一个插件 - https://github.com/sebastien-p/jquery.hasEventListener

文件大小是一个问题,所以我想避免使用它。

我使用了最新的jQuery所以不能使用。数据(“事件”)

+4

'文件大小是一个问题,所以我想避免使用它.'它的大小<〜2.5kb。 jQuery大小约为20倍。 – andlrc

+0

你可以使用这个插件来检查事件监听器:https://github.com/sebastien-p/jquery.hasEventListener – Curt

+0

THanks Null,但我继承了一个规定了文件大小限制的项目,它已经包含了jquery。 – Finnnn

回答

0

据我所知,你不能在JS中'假'点击。点击事件触发器只是触发onClick JS事件,并不完全模拟点击浏览器中的链接。然而,你需要做的就是使用JS获取href并重定向到该页面。我用几条线更新了你的小提琴。

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

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

选择器选择没有阶级event_bound所有锚标签。

+0

喜欢横向思维,非常感谢。 – Finnnn

0

看着你的代码,你必须选择与你的组合框中的选定值相同的href属性的链接。例如:

$('#nav').on('change', function(event) { 
     var targetHref = $(this).find("option:selected").val(); 
     $('a[href="'+targetHref+'"]').each(function() { 
      $(this).trigger('click'); 
     }); 
}); 

假设您有链接的点击事件。如果不是,只需给你的链接指定同一个类,然后为该类写一个单击事件,将窗口位置设置为该对象的href属性。

相关问题