云顶娱乐-云顶娱乐游戏平台官网
做最好的网站
当前位置: 云顶娱乐 > 云顶娱乐 > 正文

浅析动态生成dom绑定事件,基于jQuery的proxy函数之

时间:2020-01-19 02:16来源:云顶娱乐
深入解析动态生成dom绑定事件的宽广错误和解决方法,早前做项目都是平素用jquery的bind绑定事件,不过当下都不是动态生成dom成分,而是早已页面中原来存在的dom成分进行事件绑定,近

深入解析动态生成dom绑定事件的宽广错误和解决方法,早前做项目都是平素用jquery的bind绑定事件,不过当下都不是动态生成dom成分,而是早已页面中原来存在的dom成分进行事件绑定,近来在测量检验给动态变化的dom绑定事件的时候开采事件失效,于是就测量检验了须臾间:

时光过得好快,五后生可畏假期快完了,玩了2天,好累,明日在家休养,给和煦充下电。今日主要想分享下JQuery中的html的语法和采用,那么些脾气在刚初始学习jq就能够触发到,不过你是还是不是知情他们的关系和用法呢。OK,咱们接下去拿具体实例讲授下。

快下班了,终于闲下来了,想谈谈jQuery中live的使用和界别。

浅析动态生成dom绑定事件,基于jQuery的proxy函数之应用法规。寂静的时候相符调整心态分享点东西了,想温故下ajax的发送供给方法,使用Jquery的ajax方法发送央求时,发未来后桃园利用ashx文件不恐怕收到到ajax方法中传送的参数,上网查了一下缘故后发掘了难点所在,原本是本身在$.ajax方法中指明了"contentType: 'application/json; charset=utf8'",所以才促成了在ashx文件中拍卖乞求时束手待死获取传递到服务器端的参数,

前日根本想分享下基于jQuery的proxy(State of Qatar函数之应用,打开jQuery手册,我们能够明白到:

  1. 事件失效的来由:

1.HTML:得到第4个相称成分的html内容。这么些函数不能用来XML文书档案。但能够用于XHTML文书档案

留意尽管是经过jQuery加多的层和对象自然要用live(卡塔尔,用任何的都不起功用。

$.ajax({url: '/Handler.ashx?operFlag=test',type: 'POST',/*请求ashx文件的时候 要把contentType去掉,还有就是data 格式为 {”key”,”value”};切记 不要再 大括号外面加双引号,这样就会在ashx页面取不到数据而失败*///contentType: 'application/json; charset=utf',data: {"key": "xdp","key":"孤傲苍狼" },cache: false,dataType: 'text',success: function ;},error: function  {alert("出现错误,请稍后再试:" + xhr.responseText);}});

jQuery.proxy(卡塔尔国,选拔三个函数,然后回来三个新函数,而且这一个新函数始终维持了特定的上下文语境。

bind事件绑定只对dom中存在的要素有效,对于我们后来动态扩展的元素是监测不到,所以绑定不了

html:设置每四个相配成分的html内容。那么些函数不可能用来XML文书档案。但足以用来XHTML文书档案。

live的弊放正是,运营完未来不自由空间,太多的应用会攻克越来越多的内存,bind(State of Qatar则点击完事后释放空间。

那般在ashx文件中即可动用如下的代码来得到$.ajax方法传递的参数了,代码如下:

jQuery.proxy

生机勃勃致,当你使用var aa = document.getElementsByTagName;来拿到动态变化的要素的时候也是获得不到的,因为网页只会试行三回带头化绑定,之后动态变化的dom成分也是监测不到的。

2.TEXT:获得富有相配成分的剧情。

区别一:

string key = context.Request["key"];string key = context.Request["key"];

function将要改造上下文语境的函数。

  1. 解决办法:

结果是由具备相配成分包罗的文件内容结合起来的文件。这些措施对HTML和XML文书档案都灵验。

可以给那几个因素绑定三个简易的click事件:

早先平素都以用$.post方法来拍卖ajax,所以未有放在心上到那几个主题素材,而此番是因为是类别需求,所以就动用了$.ajax,没悟出就碰着了上述的难点,幸而找寻了难点所在並且马上解除了难题。

context函数的上下文语境会被设置成这一个 object 对象。

在每三个动态变化的地点都再绑定多贰次事件,比方那个博客里面包车型客车事例

text:设置富有相配成分的文本内容

$.bind('click',function.append('Anothertarget');});

此外,近期还遇上了五个意想不到的难点,"用ajax提交数据到ashx后,用JSON.stringify格式化参数后在劳动器端取不到值?",代码如下:

jQuery.proxy

把bind改用live,因为live是实时监测的,对于新添的dom成分也是一蹴而就的(因为不断去绑定、判定,所以大概会影响Web品质难点)

与 html(State of Qatar 近似, 但将编码 HTML (将 "" 替换到相应的HTML实体卡塔尔(قطر‎。

当点击了成分,就能够弹出一个警报框。然后,想象一下那事后有另叁个因素加多进去了。

$.ajax({url: '/Handler.ashx?operFlag=test',type: 'POST',//JSON.stringify格式化参数data: JSON.stringify({"key": "xdp-gacl","key": "白虎神皇"}),contentType: 'application/json; charset=utf',cache: false,dataType: 'json',success: function  {alert(data.key + "|" + data.key);},error: function  {alert("出现错误,请稍后再试:" + xhr.responseText);}});

context函数的上下文语境会被设置成那么些 object 对象。

把bind改用delegate,因为delegate是实时监测的。

3.VAL:拿到首个相称成分的脚下值。

就算那几个新的要素也能够合作接受器 ".clickme",可是出于那一个成分是在调用 .bind(State of Qatar 之后加上的,所以点击这么些成分不会有任何意义。

结果在ashx中使用context.Request["key3"]这种健康的诀借使赢得不到参数的,如下图所示:

name就要修正上下文语境的函数名(这些函数必需是前三个参数 ‘context' 对象的性质State of Qatar

在jquery1.7 起版本用on替代了bind 方法。

val:设置每一个匹配成分的值。

云顶娱乐成官方网站,live(卡塔尔国就提供了相应这种意况的不二等秘书籍。如若大家是这般绑定click事件的:

闹心了久久,怎么也想不通晓为何会这样,一伊始感觉是多了contentType: 'application/json; charset=utf8'那句代码变成的,于是把那句代码注释掉:

云顶集团4008官网,以此艺术常常在向叁个要素上附加事件管理函数时,上下文语境实际是指向另一个对象的事态下利用。

  1. 至于近年来遇见的事件失效的缘由:

上边的剧情是在JQuery的相助文档里拷贝的,也都不废话多说了。上边是和谐做的有的演练,在做练习的时候小编开采了html和text的另三个不意气风发之处

$.live('click',function(){alert("Livehandlercalled.");});
$.ajax({url: '/Handler.ashx?operFlag=test',type: 'POST',//JSON.stringify格式化参数data: JSON.stringify({"key": "xdp-gacl","key": "白虎神皇"}),//contentType: 'application/json; charset=utf',cache: false,dataType: 'json',success: function  {alert(data.key + "|" + data.key);},error: function  {alert("出现错误,请稍后再试:" + xhr.responseText);}});

其余,jQuery 能够保障固然你绑定的函数是经过 jQuery.proxy(State of Qatar管理过的函数,你仍旧得以用原本的函数来不易地裁撤绑定。

在原来的网页中(代码可以看到

html(卡塔尔(قطر‎去成分的剧情的时候,能将所选定的元素下边包车型大巴格式也取到了。

接下来再加多贰个新因素:

只是结果还是长期以来的,使用context.Request["key3"]抑或获得不到参数,没办法,既然常规的章程得到不到,那就另寻他法啊,百度了后生可畏晃,找到了解决办法,在ashx中使用如下的不二秘技就足以获得到了,首先写三个通用的获得参数的方式,代码如下:

参数: function:Function类型需求转移上下文对象的函数。 context:大肆档期的顺序钦命为函数设置的上下文对象。 name:String类型需求转移上下文对象的函数名称。 additionalArguments可选/大肆档期的顺序钦定调用该函数时须求传入的参数,参数能够有专断多少个。

编辑:云顶娱乐 本文来源:浅析动态生成dom绑定事件,基于jQuery的proxy函数之

关键词: