2015-01-15 2 views
0

У меня есть вызов ajax, и в конце его я устанавливаю href для тега привязки и хочу щелкнуть его, но я не могу этого сделать. Вот мой код:Jquery trigger click after ajax call

<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(), но оба не удалось, так что теперь я пробую удачу здесь. Он заполняет тег href на моем теге привязки, но просто не нажимает на него.

+3

Может было бы лучше использовать 'window.location.href = obj.MessageLink;'? –

+2

Использовать window.location.href = obj.MessageLink – Ragnar

+0

window.location.href works. Большое спасибо :) –

ответ

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(); 

Надежда, что помогает!