2015-01-15 176 views
0

我有一个ajax调用,并在它的结尾,我设置href锚标记,并希望点击它,但无法这样做。这里是我的代码:jquery触发ajax调用后点击

<div> 
    <a id="hypSendEmail">email</a> 
</div> 

$("body").on("click", "#btnPopulateEmails", function() { 
     var $form = $("#btnPopulateEmails").parents('form'); 
     $.ajax({ 
      type: "POST", 
      url: url, 
      async: true, 
      data: $form.serialize() 
     }).done(function (data) { 
      var json = data, 
      obj = JSON.parse(json); 
      if (obj.MessageType == "success") { 
       $("#hypSendEmail").attr('href', obj.MessageLink); 
       $("#hypSendEmail").trigger("click"); 
       //$("#hypSendEmail").click(); 
       $.colorbox.close(); 
      } 
      if (obj.MessageContent != null) { 
       //do something else 
      } 
     }); 
     return false; 
    }); 

我相信我必须以某种方式使用.on功能可能触发点击?请帮忙。我的目的是用邮件填充超链接到&自动点击它。我尝试使用Process.Start() & Response.Redirect()代码behing这样做,但都失败了,所以现在我在这里尝试我的运气。它确实在我的锚标记上填充了href标记,但只是不点击它。

+3

也许会更好地利用'window.location.href = obj.MessageLink;'? –

+2

使用window.location.href = obj.MessageLink – Ragnar

+0

window.location.href的作品。非常感谢:) –

回答

0

这个工作感谢亚历山大&拉格纳评论:

window.location.href = obj.MessageLink; 
0

看起来像是一个可能的重复Jquery how to trigger click event on href element

Jquery触发器只触发处理程序而不是锚标记的原生行为。而不是使用jquery.trigger,而是使用本地DOM“单击”。

改变这一行:

$("#hypSendEmail").trigger("click"); 

为了这个:

$("#hypSendEmail")[0].click(); 

希望帮助!