2014-12-10 2 views
0

Я загружаю блок HTML, хранящийся в XML-файле Ajax, и этот HTML-код содержит тег, на котором ожидается событие click.Событие Click, не работающее над тегом, загруженным Ajax

$.ajax({ 
      type: "GET", 
      async:false, 
      url: "/js/content/cookiesBandeauContent.xml", 
      dataType: "xml", 
      success: function (xml) { 
        // Parse the xml file and get data 
        //var xmlDoc = $.parseXML(xml), 
        $xml = $(xml); 

        $("body").prepend($xml.find(sLang+" paragraphContent").text()); 

      } 
     }); 

В основном HTML нагруженные выглядит следующим образом:

<div id='background_cookies'> 
     <div id='cookies'> 
      <p class='cookies'>XXXXXXXX<a class='cookiesPolicy' href='/cookies_policy/cookies_policy.aspx' target='_blank'>Politique de Cookies</a>.<br> 
      XXXX<a class='cookiesSettings' href='/cookies_settings/cookies_settings.aspx' target='_blank'>Paramètres des Cookies</a>. 
      </p> 
      <a class='cookies_continue' href='#'>Continuer</a> 
     </div> 
</div> 

Событие щелчок объявляемые в документе готовый:

$("div#cookies a.cookies_continue").click(function(e) { 

    e.preventDefault(); 
    $("div#cookies").fadeOut(); 
}); 

Заранее спасибо за помощь

+0

Является ли это запрос AJAX только будет вызываться один раз? Я спрашиваю, потому что загруженный контент содержит идентификаторы, которые, если они были добавлены более одного раза, не будут действительны, поскольку идентификаторы должны быть уникальными. –

ответ

0

Ваш необходимо связать событие после добавления html после вызова ajax. Если вы добавляете что-то динамически, вам нужно связать событие после его добавления.

function BindEventCookie() { 
    $("div#cookies a.cookies_continue").click(function(e) { 

     e.preventDefault(); 
     $("div#cookies").fadeOut(); 
    }); 
} 

$.ajax({ 
     type: "GET", 
     async:false, 
     url: "/js/content/cookiesBandeauContent.xml", 
     dataType: "xml", 
     success: function (xml) { 
       // Parse the xml file and get data 
       //var xmlDoc = $.parseXML(xml), 
       $xml = $(xml); 

       $("body").prepend($xml.find(sLang+" paragraphContent").text()); 
       BindEventCookie(); 

     } 
    }); 

UPDATE

Я с рабочим скрипку: http://jsfiddle.net/e42d703o/

+0

Спасибо, но это не работает, к сожалению! – FieryA

+0

Я делаю скрипку, чтобы проиллюстрировать мою мысль. Он работает правильно. –

0

в функции успеха

 success: function (xml) { 
       // Parse the xml file and get data 
       //var xmlDoc = $.parseXML(xml), 
       $xml = $(xml); 

       $("body").prepend($xml.find(sLang+" paragraphContent").text()); 

     } 

добавить обработчик с "на" функции Jquery

$("div#cookies a.cookies_continue").on('click', function(e) { 

    e.preventDefault(); 
    $("div#cookies").fadeOut(); 
}); 

который является более функциональным, чем простой обработчик щелчка, насколько я знаю,

+0

Спасибо, но он не работает ни! :( – FieryA

0
$("div#cookies").on('click','a.cookies_continue', function(e) { 
     $("div#cookies").fadeOut(); 
     return false; 
    });