【问题标题】: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.hasEventListener
  • File size is an issue, so I'd like to avoid using it. 它的大小是
  • 感谢 Null,但我继承了一个已规定文件大小限制且已包含 jquery 的项目。
  • 如果你使用的是$(elem).data("events")
  • 我用的是最新版的jquery

标签: javascript 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 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多