html停止所以ajax请求,jQuery切换功能在AJAX HTML数据加载后停止工作

在PHP页面中,一个使用jQuery toggle()函数来显示和隐藏HTML列表的脚本在通过AJAX加载新数据并替换现有内容后停止工作。尽管页面源代码看起来相同,但点击事件不再触发toggle()。问题在于,当使用AJAX更新内容时,原有的DOM元素被替换,导致绑定的事件丢失。解决方案可能涉及使用事件委托或将事件绑定到更高层级的元素。
摘要由CSDN通过智能技术生成

我有一个带有HTML的简单PHP文件(获取UL> LI> UL> LI形式的列表,该列表使用toggle()函数。该函数打开UL和显示或隐藏LI)。该页面还有一个可正常工作的输入表单(将数据添加到数据库)。jQuery切换功能在AJAX HTML数据加载后停止工作

AJAX表格成功后,我删除整个div并从数据库中重新打印。

我的问题:一旦打印新页面,toggle()函数将停止工作,直到页面刷新。

的切换功能(在外部JavaScript文件):

$(document).ready(function() {

$(".product_category").click(function(event) {

event.preventDefault();

$(this).find("ul > .product").toggle();

});

});

形式:

形式发送功能:

$("#list_add_product_button").click(function(event){

var txt=$("#list_add_product").val();

$.ajax({

type: "POST",

url: "addproduct2.php",

cache: false,

data: {product: txt},

success: onSuccess,

error: onError

});

// IF THE SUBMIT WAS SUCCESFULL //

function onSuccess(data, status)

{

console.log(data);

clearInput();

$('#main_list').empty();

$('#main_list').html(data);

}

function onError(data,status){

// something

}

});

我得到印在console.log(data)什么:

Baked [2]

现在,toggle()函数在添加产品之前工作良好。列表打开并关闭,没有任何问题。我没有在控制台中得到任何错误,我在页头(第一项)中加载jQuery。

我想说明的是,在代码打印之前和之后查看源代码看起来完全一样,除了打印新的额外的LI。

我错过了什么吗? div数据刷新后jQuery函数是否停止工作?

2014-03-28

Bdevelle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用jQueryAjax来实现一个简单的分页tab切换效果。以下是一个示例代码: HTML部分: ```html <div id="tabs"> <ul class="tab-nav"> <li><a href="#" data-page="1">Tab 1</a></li> <li><a href="#" data-page="2">Tab 2</a></li> <li><a href="#" data-page="3">Tab 3</a></li> </ul> <div class="tab-content"></div> </div> ``` JavaScript部分: ```javascript $(document).ready(function() { // 默认显示第一个tab loadTab(1); // tab切换事件 $('.tab-nav a').click(function(e) { e.preventDefault(); var page = $(this).data('page'); loadTab(page); }); function loadTab(page) { $.ajax({ url: 'your_api_endpoint', // 替换为你的API接口地址 type: 'GET', data: { page: page }, success: function(response) { // 渲染tab内容 $('.tab-content').html(response); }, error: function() { alert('加载失败'); } }); } }); ``` 在上面的代码中,我们使用了一个`ul`列表来显示tab导航,每个`li`里都有一个带有`data-page`属性的链接,用于表示对应的页面编号。`.tab-content`是用来显示每个tab内容的容器。 在JavaScript部分,我们首先调用`loadTab(1)`来加载默认的第一个tab,然后给每个tab链接绑定了一个点击事件,点击时调用`loadTab`函数来加载相应的tab内容。 在`loadTab`函数中,我们使用了jQuery的`$.ajax`方法来发送一个GET请求到指定的API接口,并通过传递的`page`参数来获取对应页面的内容。在成功响应时,我们将获取到的内容渲染到`.tab-content`容器中。 请注意,你需要将`url`替换为你自己的API接口地址,并确保你的API能够根据传递的`page`参数返回对应页面的内容。 希望这个示例能帮助到你,如果有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值