JavaScript:从javascript调用锚标记的点击事件

Shy*_*yju 19 javascript jquery click onclick

我有一个带锚标记的页面.在我的JavaScript中,我HREF根据一些if-else条件动态设置锚标记的属性.现在我想以编程方式调用anchor标记的click事件.我使用下面的代码,但没有成功.

var proxyImgSrc="CostMetrics.aspx?Model=" + model +"&KeepThis=true&TB_iframe=true&height=410&width=650";

document.getElementById("proxyAnchor").href=proxyImgSrc;
document.getElementById("proxyAnchor").onclick;
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何继续吗?我在这个链接上有一个jQuery灯箱实现(thickbox).

好心提醒.提前致谢.

sam*_*son 68

如果您安装了jQuery,那么为什么不这样做:

$('#proxyAnchor')[0].click();
Run Code Online (Sandbox Code Playgroud)

注意,我们使用[0]来指定第一个元素.jQuery选择器返回一个jQuery实例,并调用click(),只调用click javascript handler,而不是href.在实际元素上调用click()(由[0]返回)将跟随href等中的链接.

请看这里举例说明不同之处:http://jsfiddle.net/8hyU9/

至于为什么你的原始代码不起作用 - 这可能是因为你在呼唤onclick,而不是onclick().如果没有括号,JavaScript将返回分配给onclick属性的任何内容,而不是尝试执行它.

试试下面这个简单的例子来看看我的意思:

var f = function() { return "Hello"; };     
alert(f);
alert(f());
Run Code Online (Sandbox Code Playgroud)

第一个将显示函数的实际文本,而第二个将按预期显示单词"Hello".

  • 对于"跟随锚中定义的href"的用例[此答案失败](http://jsfiddle.net/SNdHW/show/) (2认同)

Can*_*var 11

您应该像这样调用click事件:

document.getElementById("proxyAnchor").click();
// $('#proxyAnchor').click();
Run Code Online (Sandbox Code Playgroud)

但在您的情况下,如果需要,您应该将窗口的位置设置为重定向页面.