JQuery загрузить информацию из элементов в разных элементах
Как получить значение href по ссылке, загруженной с помощью $.get? Мой скрипт всегда использует значение, которое раньше было в div, а не значение, которое было загружено впоследствии.
Код:
<html>
<body>
<div id="wrapper">
<div id="more">
content
</div>
<div class="paglink">
<a href="/the/url/to/page/1">More</a>
</div>
</div>
<script>
jQuery(document).ready(function($) {
$(".paglink a").click(function(e) {
e.preventDefault();
$.get($(".paglink a").attr('href'), function(data){
$(data).find("#more").appendTo("#more");
$(".paglink").html($(data).find(".paglink").html());
});
});
});
</script>
</body>
</html>
Страница, которая загружается:
<html>
<body>
<div id="wrapper">
<div id="more">
content
</div>
<div class="paglink">
<a href="/the/url/to/page/2">More</a>
</div>
</div>
</body>
</html>
Короче говоря: что я должен написать вместо
$(".paglink a").attr('href')
получить значение из только что загруженной ссылки?
1 ответ
Кажется, что вы динамически загружаете элементы в html, таким образом, у новых элементов нет прикрепленного к ним события click, потому что вы, вероятно, прикрепляете его к document.Ready()..
В jQuery есть "on" API, который вы можете использовать для добавления событий щелчка к динамически загружаемым элементам DOM.
Попробуйте этот код
$(".paglink").on('click' , 'a', function(e) {
e.preventDefault();
$.get($(this).attr('href'), function(data){
alert(data);
$(data).find("#more").appendTo("#more");
$(".paglink").html($(data).find(".paglink").html());
});
});
Этот код является правильным
$(data).find("#more").appendTo("#more");
Вы берете только HTML-контент, который принадлежит #more
элемент