Javascript 以编程方式单击以下href并添加一些代码
我想动态添加一个href元素(打开一个jnlp文件),然后继续调用方的工作流程,例如只执行Javascript 以编程方式单击以下href并添加一些代码,javascript,jquery,Javascript,Jquery,我想动态添加一个href元素(打开一个jnlp文件),然后继续调用方的工作流程,例如只执行console.log 到目前为止,我的代码是: $('<a id="tmplink" />') .attr('href', '/open_my.jnlp') .text('LINK') .appendTo('body') .get(0) .click(function(e) { console.log('aaaa'); // <-- this is nev
console.log
到目前为止,我的代码是:
$('<a id="tmplink" />')
.attr('href', '/open_my.jnlp')
.text('LINK')
.appendTo('body')
.get(0)
.click(function(e) {
console.log('aaaa'); // <-- this is never reached
});
$(“”)
.attr('href','/open_my.jnlp')
.text(“链接”)
.appendTo('正文')
.get(0)
。单击(功能(e){
log('aaaa');//如果在初始语句下面单独添加click事件侦听器,代码将正常工作
示例:
$(文档).ready(函数(){
$('')
.attr('href','/open_my.jnlp')
.text(“链接”)
.appendTo('正文')
.get(0);
$('#tmplink')。单击(函数(){
控制台日志('aaaa');
});
});
调整这两点后,您的代码将正常工作:
无需使用.get(0)
,因为它将返回如下HTML元素:
<a id="tmplink" href="/open_my.jnlp">LINK</a>
希望这有帮助
$(“”)
.attr('href','/open_my.jnlp')
.text(“链接”)
.appendTo('正文')
。单击(功能(e){
e、 预防默认值();
log('anchor clicked');
});
Removeget(0)
如果您想使用jquery绑定click事件。get(0)
在这里没有任何意义,因此,您正在同一窗口/选项卡中打开文件,页面被刷新(预期),因此刷新后的代码永远不会到达(预期,您也已经打开了新文件)?防止默认设置,添加一些延迟(setTimeout)然后重定向到新文件,可能是?@sinisake,嗯,那么在单击新页面拥有控制权之后,如何让调用方继续控制?@leonardorame,不确定上下文,但您可以使用ajax-在现有(“调用方”)中加载新文件页面,并避免页面刷新…@sinisake,不,我不能使用Ajax,因为这样.jnlp不由浏览器处理,我的意思是它已加载,但不会运行。是的,但我不确定该文件不应被打开。这样-link不起作用。@sinisake确切地说,这显示了console.log,但不跟随链接,我想做这两件事。不,是的您不能同时执行这两项操作,因为如果您想跟随链接,页面将被重定向,如果您删除preventDefault(),那么新页面的日志将自动清除<>代码>您可以注意到日志将显示一段时间,然后清除。我希望我可以,但我正处于学习jQuery的中间。我知道它确实有效,但我不能明确说明为什么。
$('<a id="tmplink" />')
.attr('href', '/open_my.jnlp')
.text('LINK')
.appendTo('body')
.click(function(e) {
e.preventDefault();
console.log('anchor clicked');
});