jquery异步post,返回Html,返回的html里的jquery失效,怎么解决。
目前我的解决办法是:1.事件尽量使用live,或者写在html标签里,比如<divonclick="在这里写事件函数">点击</div>。2.重新注册.$GetScrip...
目前我的解决办法是:1.事件尽量使用live,或者写在html标签里,比如<div onclick="在这里写事件函数">点击</div>。2.重新注册.$GetScript("js路径");
目前第二种不适合,各个不同的区域异步都要重新注册,会造成混乱。所以目前用了第一种,觉得这种方法也欠佳,谁有更好的方法,如有说的详细点,我找了好多,也没有找到合适的方法,谢谢了。可以追加分数。
谁有更好的办法吗 展开
目前第二种不适合,各个不同的区域异步都要重新注册,会造成混乱。所以目前用了第一种,觉得这种方法也欠佳,谁有更好的方法,如有说的详细点,我找了好多,也没有找到合适的方法,谢谢了。可以追加分数。
谁有更好的办法吗 展开
6个回答
展开全部
将HTML和JS分开加载,写一个全局的方法,在获取html后查找其中的脚本文件重新加载
如:获取HTML并加载后
可以用以下方式加载JS
var _obj = ...;// 这里是你加载html的对象,没用jQuery
var scriptTags = _obj.getElementsByTagName("script");
for (var i = 0; i < scriptTags.length; i ++){
if(scriptTags[i].src == null || scriptTags[i].src == "")
new Funtion(scriptTags.innerHTML)();
else{
var s = document.createElement("script");
s.src = scriptTags[i].src;
document.body.appendChild(s);
}
}
这样,所有的HTML中内嵌的js就都能执行了
如:获取HTML并加载后
可以用以下方式加载JS
var _obj = ...;// 这里是你加载html的对象,没用jQuery
var scriptTags = _obj.getElementsByTagName("script");
for (var i = 0; i < scriptTags.length; i ++){
if(scriptTags[i].src == null || scriptTags[i].src == "")
new Funtion(scriptTags.innerHTML)();
else{
var s = document.createElement("script");
s.src = scriptTags[i].src;
document.body.appendChild(s);
}
}
这样,所有的HTML中内嵌的js就都能执行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般都不把jquery写在返回的html里,一是jq分离慢,容易出错,二是没啥实在意义。
要么就写在当前,要么就重新getScript,再post
要么就写在当前,要么就重新getScript,再post
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把返回的html里的js代码写在post回调函数里面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
POST方法有没有忘记加html表头?
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
还有传值是否写在send()里?
xmlhttp.send("fname=Bill&lname=Gates");
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
还有传值是否写在send()里?
xmlhttp.send("fname=Bill&lname=Gates");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
返回的是你后台处理后返回的JSON字符串,jquery对象失效 可能是你语法有错误,而且你补粘贴代码我们都是猜测
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询