2015-04-02 2 views
0

Я пробовал все возможные решения, но он по-прежнему не работает для меня.Ajax: ссылка в ответе ajax не работает

Я использую вызов ajax на php-страницу, скажем, файл livesearch.php, со страницы индекса, чтобы получить результат в реальном времени.

<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
     <script> 
      $("#livesearch").on("click", "a.alert", function() { 
       alert("here"); 
      }); 
     </script> 
     <script> 
      function showResult(str) { 
       if (str.length == 0) { 
        $("#livesearch").empty(); 
        $("#livesearch").css('display', 'none'); 
        return; 
       } 

       $.ajax({ 
        type: "GET", 
        url: "livesearch.php?q=" + str, 
        success: function(responseText) { 
         $("#livesearch").html(responseText); 
         $("#livesearch").css('display', 'block'); 
         $("#livesearch").css('background', '#fff'); 
        } 
       }); 
      } 
     </script> 
    </head> 
    <body> 
     <form> 
      <input type="text" size="30" onkeyup="showResult(this.value)" onblur="showResult('')" placeholder="search here"> 
      <div id="livesearch" style="height:500px;width:900px;overflow-y:scroll;display:none;z-index:99999;"></div> 
     </form> 
     <div id="gentext" style="position:fixed;top:40px;z-index:-1;">This is just a dummy text to check if result div overshadow this line or not.</div> 
    </body> 
</html> 

Он отлично работает и имеет список возможных поисков. Теперь из результатов поиска пользователь может нажать на страницу, чтобы просмотреть ее - просто. Как только один клик по ссылке, я хочу поймать это и сделать некоторую обработку. Смотрите ниже раздел в коде выше:

$("#livesearch").on("click", "a.alert", function() { 
    alert("here"); 
}); 

Для начала, я тестирование, если я в состоянии захватить нажмите на эту ссылку вернулся из АЯКС поиска или нет - так оповещения («здесь»), но это не работает.

Пожалуйста ГПУ

+0

Не очевидно ли вам, что вы должны определить '$ (" # livesearch "). On (....' * after * добавить ссылку на dom? – developerwjk

+0

Не могли бы вы рассказать об этом мне. Я использую .on (для живого), чтобы сообщить, что что-то еще приходит, когда нужно обработать событие. – Ramesh

+0

В других словах команда запускается после '$ (" # livesearch "). Html (responseText);' Добавлено это как ответ. – developerwjk

ответ

2

Определить метод щелчка после добавления ссылки:

success: function(responseText) 
{ 
    $("#livesearch").html(responseText); 
    $("#livesearch").css('display', 'block'); 
    $("#livesearch").css('background', '#fff'); 
    $("#livesearch").on("click", "a.alert", function() 
    { 
     alert("here"); 
    }); 
} 
0

Попробуйте это и дайте нам знать, что консоль возвращается:

$.ajax({ 
    type: "GET", 
    url: "livesearch.php?q=" + str, 
    success: function(responseText) { 

     console.log(responseText); //CHECK YOUR CONSOLE 

     $("#livesearch").append(responseText); 
     $("#livesearch").css('display', 'block'); 
     $("#livesearch").css('background', '#fff'); 
     $("#livesearch").find(".alert").click(function(e) { 
      e.preventDefault(); 
      alert("here"); 
     }); 
    } 
}); 

Другой путь для достижения этой цели это построить ваш якорный тэг, например, <a href="" onclick="return myFunction()"></a>, а затем создать функцию JS:

myFunction(){ 
    alert("here") 
    return false; 
} 
+0

Удар по этой ошибке: Непринятый ReferenceError: resposeText не определен. – Ramesh

+0

Проблема, вероятно, заключается в вашем PHP. Предоставьте свой php – CodeGodie

+0

В строке console.log (resposeText) возникла ошибка типа. Попытка теперь – Ramesh

Смежные вопросы