Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以编程方式单击以下href并添加一些代码_Javascript_Jquery - Fatal编程技术网

Javascript 以编程方式单击以下href并添加一些代码

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

我想动态添加一个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 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');
    });

    Remove
    get(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');
    });