Jquery:使整个块可点击,同时保留在新选项卡/窗口中打开的能力

发布于 2024-10-25 06:28:50 字数 993 浏览 1 评论 0原文

我不想使用 css 来扩展链接宽度/高度等。

使用我的代码,整个 LI 是可单击的,它会打开其中找到的链接。我保留了鼠标中键单击以在新窗口中打开链接的功能。

  1. 我想知道是否有人真的 实际上知道他们在做什么 可以在这方面指导我并让我知道 如果这是最好的写作方式 这个,或者是否有改变 可以对我的代码进行修改吗?

  2. 还有:有人可以帮我添加一个 “ctrl+左键单击”打开链接 在新窗口中,这是相同的 单击鼠标中键 是的,我只是不确定如何测试 对于ctrl?我想改变 else if ((e.which == 2)) { 部分为 else if ((e.which == 2) && (e.which == 16)) { 可以,但不行。

代码:

$('li a').each(function() {
            $(this).parent().bind('click', function(e) {
                if((e.which == 1)) {
                    alert('left mouse button clicked')
                    window.location=$(this).find("a").attr("href"); return false;
                }
                else if ((e.which == 2)) {
                    alert('middle mouse button clicked')              

                        window.open($(this).find('a').attr('href'));
                        return false;  
                }
            });
        });

I don't want to use css to expand the link width/height etc.

With my code, the entire LI is clickable, it opens the a link found within it. I've preserved the middle mouse click to open the link in a new window.

  1. I'm wondering if someone who really
    actually knows what they're doing
    can guide me in this and let me know
    if this is the best way to write
    this, or are there alterations that
    could be made to my code?

  2. also: can someone help me add a
    "ctrl+left-click" to open the link
    in a new window, which is the same
    thing a middle-mouse-button click
    does, i'm just not sure how to test
    for ctrl? I thought changing the
    else if ((e.which == 2)) { part to else if ((e.which
    == 2) && (e.which == 16)) {
    would work, but it doesn't.

code:

$('li a').each(function() {
            $(this).parent().bind('click', function(e) {
                if((e.which == 1)) {
                    alert('left mouse button clicked')
                    window.location=$(this).find("a").attr("href"); return false;
                }
                else if ((e.which == 2)) {
                    alert('middle mouse button clicked')              

                        window.open($(this).find('a').attr('href'));
                        return false;  
                }
            });
        });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

握住你手 2024-11-01 06:28:50

以下是检测按下了哪些键的指南(这一切都通过传入的事件进行): http:// www.quirksmode.org/js/keys.html

请注意,在 OSX 上,大多数浏览器都是不可能的。

Here's your guide for detecting which keys are pressed (it's all through the event coming in): http://www.quirksmode.org/js/keys.html

Note that on OSX it's impossible in most browsers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文