У меня есть код JQuery, который работает на DOM готов.Это также создает элементы динамически.Когда я вызываю событие click одного из этих динамических элементов, вместо вызова кода внутри его события click, он перезагружает страницу и снова вызывается функция pageload.По сути, он вообще не запускает код внутри события click.
$(document).ready(function(){
loadPage();
function loadPage() {
var value = $("#search").val();
//create post data
var postData = {
"value" : value
};
//define ajax config object
$.ajax({
type: "post",
url: "search.php",
data: postData,
dataType: "json",
success: function(data) {
if(!data[0].success){
alert(data[0].er);
}
else {
$('#search-results').empty();
var div_main = $("<div>").attr('id', "search-content").appendTo("#search-results");
for (var x = 0; x < data.length; x++) {
var div = $("<div>").attr('id', "search-content-container").appendTo(div_main);
var div_en_quotes = $("<div>").attr('id', "search-en-quotes").html(data[x].cQuotes).appendTo(div);
var div_author = $("<div>").attr('id', "search-author").html(data[x].vAuthor).appendTo(div);
var div_ref = $("<div>").attr('id', "search-bookref").html("<a class='bk_name' href='?bookname="+ data[x].vBookName +"'>" + data[x].vBookName +"</a> "+ data[x].vRef).appendTo(div);
}
}
}
});
}
});
$(document).on("click", "a.bk_name", function(e){
e.preventDefault();
alert($('.bk_name').html());
});
Если я добавлю e.preventDefault
, он останавливает перезагрузку страницы и выполняет код, но значение anchor tag
остается статическим.То есть он отображает только первое значение в цикле, даже если я нажимаю на другие значения.
Я использую jQuery 1.7.