触发点击时访问链接[重复]

Posted

技术标签:

【中文标题】触发点击时访问链接[重复]【英文标题】: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 【参考方案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 属性。

【讨论】:

以上是关于触发点击时访问链接[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Html链接在后台调用Php函数[重复]

有没有办法我可以在路由器链接中嵌套一个按钮,当它被点击时只触发按钮而不是两者?

jQuery - 通过单击链接问题触发事件

如何在页面底部停止双javascript触发器[重复]

悬停链接需要双击

php超链接标签事件都有哪些