如何模拟锚的链接点击?

时间:2023-01-23 21:14:27

I'm trying to trigger a link click for .jquery. Does someone know why the following doesn't work.

我正在尝试触发.jquery的链接点击。有人知道为什么下面的方法行不通吗?

<!DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html lang="en"> 
  <head> 
    <title>test</title>
  </head>
  <body> 
    <div>
       <a id="google_link" href="http://google.com" target="_blank">click to go to google</a>
    </div>
    <div id="google_link_proxy">click here to do the same as the link above</div>

    <script type="text/javascript">      
     $("#google_link_proxy").click(function(event){
         $("#google_link").click();
     });
    </script>
  </body>
</html>

5 个解决方案

#1


17  

Looks like your $("google_link_proxy") selector is off. Try $("#google_link_proxy").

看起来你的$(“google_link_proxy”)选择器关闭了。试试$(“#google_link_proxy”)。

You also need to close the observe call with }).

您还需要用}关闭观察调用)。

Those are the syntax errors with the code above though I don't think those functions are provided in jQuery by default.

这些是上面代码的语法错误,但我不认为这些函数在jQuery中是默认提供的。

Here is what I think you're after:

我想你想要的是:

$("#google_link_proxy").click(function(event){
    window.open($("#google_link").attr('href'),'_blank')
});

#2


33  

The jQuery method completely ignores href:

jQuery方法完全忽略href:

$('#google_link').click(); // ignores href!

The native DOM method does the right thing:

本地DOM方法做了正确的事情:

$('#google_link')[0].click();

This works regardless of whether the href is a URL, a fragment (e.g. #blah) or even a javascript:.

不管href是URL、片段(例如#blah)还是javascript:,它都可以工作。

#3


21  

If you use jQuery and the native DOM, the anchor can be clicked

如果使用jQuery和本机DOM,可以单击锚点

// insert an <a> into document and click it **natively**
// (.get(0) returns the DOM element)
$('<a id="fred99" />').attr('href', '#david').attr('target', '_blank')
.text('LINK').appendTo('body').get(0).click();

// now we've clicked, tidy up
$('#fred99').remove();

#4


2  

Make sure you have your jQuery code wrapped in a ready block like so

确保您已经将jQuery代码包在一个现成的块中。

$(document).ready(function(){/* your code here */});

This ensures scripts are fired after all the content and images are loaded.

这确保在加载所有内容和图像之后触发脚本。

#5


2  

Use click()

使用点击()

$("#google_link_proxy").click(
    function(){
        $("#google_link").click();
    }
);

fireEvent and observe is not part of jQuery API

fireEvent和observe不是jQuery API的一部分

#1


17  

Looks like your $("google_link_proxy") selector is off. Try $("#google_link_proxy").

看起来你的$(“google_link_proxy”)选择器关闭了。试试$(“#google_link_proxy”)。

You also need to close the observe call with }).

您还需要用}关闭观察调用)。

Those are the syntax errors with the code above though I don't think those functions are provided in jQuery by default.

这些是上面代码的语法错误,但我不认为这些函数在jQuery中是默认提供的。

Here is what I think you're after:

我想你想要的是:

$("#google_link_proxy").click(function(event){
    window.open($("#google_link").attr('href'),'_blank')
});

#2


33  

The jQuery method completely ignores href:

jQuery方法完全忽略href:

$('#google_link').click(); // ignores href!

The native DOM method does the right thing:

本地DOM方法做了正确的事情:

$('#google_link')[0].click();

This works regardless of whether the href is a URL, a fragment (e.g. #blah) or even a javascript:.

不管href是URL、片段(例如#blah)还是javascript:,它都可以工作。

#3


21  

If you use jQuery and the native DOM, the anchor can be clicked

如果使用jQuery和本机DOM,可以单击锚点

// insert an <a> into document and click it **natively**
// (.get(0) returns the DOM element)
$('<a id="fred99" />').attr('href', '#david').attr('target', '_blank')
.text('LINK').appendTo('body').get(0).click();

// now we've clicked, tidy up
$('#fred99').remove();

#4


2  

Make sure you have your jQuery code wrapped in a ready block like so

确保您已经将jQuery代码包在一个现成的块中。

$(document).ready(function(){/* your code here */});

This ensures scripts are fired after all the content and images are loaded.

这确保在加载所有内容和图像之后触发脚本。

#5


2  

Use click()

使用点击()

$("#google_link_proxy").click(
    function(){
        $("#google_link").click();
    }
);

fireEvent and observe is not part of jQuery API

fireEvent和observe不是jQuery API的一部分