Ajax异步获取html数据中包含js方法无效的解决方法

知识技术 2022-04-27 14:01 658
转载请务必注明: 来源:《建站管家》https://www.df81.com/news/318.html

页面上使用js写了一个获取后台数据的方法:

function data() {
    var tab = $("#dic")
    $.ajax({
      url: '../demo.ashx?method=GetList',
      data: {},
      dataType: 'json',
      type: 'post',
      async: true,
      success: function (data) {
        //console.log(data);
        var parentStr = '';
        $.each(data, function (i, item) {
          //console.log(item.text);
          
          parentStr += "<div class='pull-right'> <a class='morechange' href='javascript:;' style='visibility: visible;'>更多+</a></div>"
});
        tab.html(parentStr);
      }
    })
  }


其中的

<a class='morechange' href='javascript:;' style='visibility: visible;'>更多+</a>  绑定一个点击时间

$('.morechange').click(function(){
  alert("弹出")
});


发现点击无效无效

原来是 ajax载入新dom之前js 就加载完了,事件当然没有绑定到新载入的dom上


解决方法:

使用jquery的委托事件,将该方法委托到页面已经存在的一个节点上

$("#dic").delegate('.morechange', 'click', function () { alert("弹出"); });


问题解决。

当然也可以不使用异步将async改为false也是可以的


点赞 (0)

收藏 (0)

本站部分信息来源网络,如有侵权,请联系QQ:1062129401删除。

上一篇: 《建站管家》二次开发文档

下一篇: delegate绑定多个事件方法

请先登录后,再发表评论 ~ ~
发表评论
发表评论
发表帖子
广告位招租( ¥5 / 天 )
点击咨询
相关帖子

如果要判断文件是否存在,用函数 is_file(),如果要判断目录是否存在,用函数 is_dir()
用宝塔安装TP程序后,网站前台可以访问,后台无法访问,不是程序问题,而是web服务器环境配置问题(PHP配置),出现这种问题,一般是windows主机安装宝塔造成的,linux安装宝塔不会出现此错误
广告位招租( ¥3 / 天 )
点击咨询
广告位招租( ¥2 / 天 )
点击咨询
广告位招租( ¥1 / 天 )
点击咨询
最新帖子

小朋友,你爸爸是谁啊?这很单纯的,就像我们碰到别人会问:你吃过饭了吗?类似;许多人初次相识,经常会问:你是做什么的啊?你做什么,好像决定你收入的高低,你,资产的范围
1、升级框架到ThinkPHP8.0.3【要求PHP8.1+环境,推荐PHP8.1】 2、启用/禁用调试模式等小细节改进
后台点击生成站点地图 一直转圈圈没有反应,
在线客服