我想制作喜欢和不同于我制作的书,但这段代码只执行一次而没有刷新页面
JAVASCRIPT
<script type="text/javascript">
$(document).ready(function() {
$("#wish").click(function() {
var userId = "<?php echo $this->session->userdata("user"); ?>";
var bookId = "<?php echo $book->bo_id; ?>";
var sendData = {"user_id": userId, "book_id": bookId , "flag": this.title};
$.ajax({
url: "<?= base_url(); ?>bookstore/book/add_read_wish/",
type: "POST",
data: sendData,
success: function(data) {
}
});
if ($(this).html() != "<img src='<?= base_url() ?>global/site/images/books.website_icon-16-presed.png' alt='' />") {
$(this).attr('id', 'delete_wish');
$(this).attr('title', 'حذف الكتاب من قائمة الأمنيات');
$(this).replaceWith("<a id='delete_wish' class='rss' href='javascript:void(0)' title='حذف الكتاب من قائمة الأمنيات'><img src='<?= base_url() ?>global/site/images/books.website_icon-16-presed.png' alt='' /></a>");
//this.title = "حذف الكتاب من قائمة الأمنيات";
}
});
$("#delete_wish").click(function() {
var userId = "<?php echo $this->session->userdata("user"); ?>";
var bookId = "<?php echo $book->bo_id; ?>";
var sendData = {"user_id": userId, "book_id": bookId , "flag": this.title};
$.ajax({
url: "<?= base_url(); ?>bookstore/book/delete_read_wish/",
type: "POST",
data: sendData,
success: function(data) {
}
});
if ($(this).html() != "<img src='<?= base_url() ?>global/site/images/books.website_icon-16.png' alt='' />") {
$(this).attr('id', 'wish');
$(this).attr('title', 'أنوى قراءة هذا الكتاب');
$(this).replaceWith(" <a id='wish' class='rss' href='javascript:void(0)' title='أنوي قراءة هذا الكتاب'><img src='<?= base_url() ?>global/site/images/books.website_icon-16.png' alt='' /></a>");
//this.title = "حذف الكتاب من قائمة الأمنيات";
}
});
});
</script>
HTML
<?php if ($book_wish == NULL) { ?>
<a id="wish" class="rss" href="javascript:void(0)" title="أنوي قراءة هذا الكتاب">
<img src="<?= base_url() ?>global/site/images/books.website_icon-16.png" alt="" />
</a>
<?php } else { ?>
<!--<div id="wish">-->
<a id="delete_wish" class="rss" href="javascript:void(0)" title="حذف الكتاب من قائمة الأمنيات">
<img src="<?= base_url() ?>global/site/images/books.website_icon-16-presed.png" alt="" />
</a>
<!--</div>-->
<?php
}?>
答案 0 :(得分:0)
您正在设置页面加载时#delete_wish
的点击处理程序。但稍后您将在#delete_wish
中动态创建$("#wish").click
个链接。动态创建的#delete_wish
链接未绑定到此处理程序。您需要重新绑定每个动态创建的链接。
(假设您将#delete_wish点击处理程序方法分隔为handlerFunction)
在ajax请求后的$("#wish").click
:
if ($(this).html() != "<img src='<?= base_url() ?>global/site/images/books.website_icon-16-presed.png' alt='' />") {
$(this).attr('id', 'delete_wish');
$(this).attr('title', 'حذف الكتاب من قائمة الأمنيات');
$(this).replaceWith("<a id='delete_wish' class='rss' href='javascript:void(0)' title='حذف الكتاب من قائمة الأمنيات'><img src='<?= base_url() ?>global/site/images/books.website_icon-16-presed.png' alt='' /></a>");
//bind a click handler for newly created link:
$('#delete_wish').click(handlerFunction);
}
答案 1 :(得分:0)
问题是replaceWith JQuery函数。它基本上用“点击”替换你原来的元素。与新元素结合。
$(this).replaceWith(....)
更换后,新元素不会侦听点击事件。
我建议将你的两个人包起来,将其中的id移动到类似的地方:
<span id="wish" ><a id="wish" class="rss" ...>..</a> </span>
然后你不需要更改javascript代码(注意,id =&#34; wish&#34;需要在替换中删除)