2016-07-12 2 views
0

У меня есть страница, которая отправляет асинхронный запрос Jquery на другую страницу, и я получаю кнопку в ответ. Кнопка имеет класс "delete_button".Привязка события Jquery к кнопке в ответе события Async

<BUTTON class="delete_button">Delete</BUTTON> 

Проблема в том, что эта «новая» кнопка не связана (и не вызывает) какое-либо событие JQuery.

Я попытался использовать функцию .on() (И старый устаревший .live()), но я не смог привязать событие к этой кнопке. Jquery даже выглядит следующим образом.

$(".delete_button").on("click", function(){ 
    //Code here... 
});  

Я проверил с помощью отладчика, что кнопка действительно имеет правильный класс, а Javascript не сигнализирует об ошибке. Ничего странного в консоли. Просто событие не происходит.

+0

Возможный дубликат [привязка событий к динамически созданным элементам?] (Http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements) – vijayP

ответ

1

Предположим, что когда вы получаете свой delete_button, он добавляется к div, так что он находится внутри этого div, например.

<div id="myDiv"> 
    <button class="delete_button">Delete</button> 
</div> 

Зная это, вы можете создать на мероприятии, как это:

$("#myDiv").on("click", ".delete_button", function(){ 
    //Code here... 
}); 

Таким образом, событие привязывается к элементу, который, безусловно, существует, а затем JQuery делегатов, что событие для любой динамически создаваемых элементов с селектором .delete_button.

То, как вы это делаете в настоящее время, не имеет значения, что вы используете .on, потому что начальный селектор (в части $ ("селектор") должен быть тем, что существует, когда страница загружается. См. http://api.jquery.com/on/ и раздел «Прямые и делегированные события» для более полного объяснения.

+0

Он отлично работал, все новые кнопки, которые созданный с учетом того, что div правильно связаны и запускают события. Спасибо, это именно то, что я искал. – Crystallize

+0

никаких проблем, рады помочь – ADyson

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