ajax加载页面后加载页面的javascript不能执行吧,有很多朋友都会碰到这种问题,下面我们来提供一些解决办法.
问题分析:
先是容器,一开始是隐藏的,代码如下:
- <SCRIPT>
- $(document).ready(function() {
- $('add_div').hide();
- });
- </SCRIPT>
- <DIV class=add_div></DIV>
这个div是空的,用于将$.load()的内容放入其中,当我们点击“查看”按钮后,执行如下js,代码如下:
- function edit(){
- $("#add_div").css("display","");
-
- $('#add_div').html('');
- $("#add_div").load('?',{
- act:"list"
- });
- }
返回的内容是如下代码:
- <DIV id=reply_list><DIV style="MARGIN: 2px; FLOAT: left; CURSOR: pointer" id=24 class=replyItem>记录(24)</DIV>
- <A style="MARGIN: 2px; FONT-SIZE: 14px" id=24 class=deletereplyitem title=删除 href="javascript:void(0)" jQuery18306790571601728192="39">×</A>
- <DIV style="CLEAR: both"></DIV>
- </DIV>
而我如下代码:
- $(document).ready(function() {
-
- $(".deletereplyitem").click(function(){
- alert('delete');
- $.ajax({
- type:"POST",
- data:"action=delete&destTable=replytable&masterId="+this.id+"&reviewId="+$("input[name=reviewId]").val(),
- url:"?",
- dataType:"json",
- success:function(data){
- if(data.num>0){
- alert(data.error);
- }
- if(data.num==0){
- alert("操作成功");
- }
- }
- })
- })
-
- $(".replyItem").click(function(){
- alert('进来!!');
- $.ajax({
- type:"POST",
- data:"act=getOne&id="+this.id,
- url:"?",
- dataType:"json",
- success:function(data){
- if(data.num>0){
- alert(data.error);
- }
- if(data.num==0){
- alert('雅蠛蝶!'+data);
-
-
- KE.util.setFullHtml('replycontent', '');
-
- KE.util.setFullHtml('replycontent', data);
- }
- }
- })
- })
- })
此时当我们点击 “X” 的时候是没有任何反应的…
也没有js错误…
-.-# 很是郁闷调了半天,都还是这样,怪了,于是找芳芳的麻烦~(我js不行~),然后芳芳告诉我必须再“注册”一次这些方法,并演示了一下,心服口服……膜拜~女神~,于是我将方法封装了一下,形容了如下代码(重点是加了回调函数),代码如下:
- function edit(){
- $("#add_div").css("display","");
-
- $('#add_div').html('');
- $("#add_div").load('?',{
- act:"list"
- },function(){
- $(".deletereplyitem").click(delReplyOne);
- $(".replyItem").click(delReplyOne);
- });
- function getReplyDetail(){
- $.ajax({
- type:"POST",
- data:"act=getOne&id="+this.id,
- url:"?",
- dataType:"json",
- success:function(data){
- if(data.num>0){
- alert(data.error);
- }
- if(data.num==0){
- alert('雅蠛蝶!'+data);
-
-
- KE.util.setFullHtml('replycontent', '');
-
- KE.util.setFullHtml('replycontent', data);
- }
- }
- })
- }
- function delReplyOne(){
- $.ajax({
- type:"POST",
- data:"action=delete&destTable=replytable&masterId="+this.id+"&reviewId="+$("input[name=reviewId]").val(),
- url:"?",
- dataType:"json",
- success:function(data){
- if(data.num>0){
- alert(data.error);
- }
- if(data.num==0){
- alert("操作成功");
- }
- }
- })
- }
- }
这些都是比较细的东西,再看一个实例,代码如下:
- $(document).ready(function() {
- $('content_div').hide();
- $('#list_user').click(function(event){
- event.preventDefault();
- load_user();
- });
- });
- function load_user(){
-
- $("#content_div").load('your page url',function(){
-
- $(".deleteItem").click(delItem);
- $(".editItem").click(editItem);
- });
- function delItem(){
- $.ajax({
- type:"POST",
- url:"your url",
- dataType:"json",
- success:function(data){
- }
- });
- }
- function editItem(){
- $.ajax({
- type:"POST",
- url:"you url",
- dataType:"json",
- success:function(data){
- }
- });
- }
- }
-