0

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

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

看到这个小提琴

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

4

3 回答 3

0

您可以从 Twitter Bootstrap ( http://twitter.github.com/bootstrap/components.html#buttonDropdowns ) 实现下拉按钮。Bootstrap 还允许您自定义下载。当您仅选择下拉菜单时,它大约为 40kb。它甚至不需要 jQuery,因为它都是 CSS。

于 2012-11-07T15:33:25.063 回答
0

查看您的代码,您必须选择具有 href 属性的链接,该属性与组合框中的选定值相同。就像是:

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

假设您的链接有一个点击事件。如果没有,只需为您的链接提供相同的类并为该类编写一个单击事件以将窗口位置设置为对象的 href 属性。

于 2012-11-07T15:34:41.467 回答
0

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

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

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

选择器选择所有没有 class 的锚标签event_bound

于 2012-11-07T15:51:23.423 回答