2013-04-23 112 views
0

我有一个问题jquery。我在网站上添加了一个脚本,用于将其他内容加载到页面中。jquery添加脚本后加载其他内容停止工作

问题是,在同一页上,我也有一个JavaScript绑定复选框 - 它停止工作,因为read()函数。以前的解决方案,我这里收到没有工作(或我不能使它工作),所以我决定做一个简单的例子(绑定脚本是在结尾):

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 

    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Ajax Rotating Includes Script</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
     var loadedobjects = "" 
     var rootdomain = "http://" + window.location.hostname 

     function ajaxpage(url, containerid) { 
      var page_request = false 
      if (window.XMLHttpRequest) // if Mozilla, Safari etc 
      page_request = new XMLHttpRequest() 
      else if (window.ActiveXObject) { // if IE 
      try { 
       page_request = new ActiveXObject("Msxml2.XMLHTTP") 
      } catch (e) { 
       try { 
       page_request = new ActiveXObject("Microsoft.XMLHTTP") 
       } catch (e) {} 
      } 
      } else return false 
      page_request.onreadystatechange = function() { 
      loadpage(page_request, containerid) 
      } 
      page_request.open('GET', url, true) 
      page_request.send(null) 
     } 

     function loadpage(page_request, containerid) { 
      if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1)) document.getElementById(containerid).innerHTML = page_request.responseText 
     } 

     function loadobjs() { 
      if (!document.getElementById) return 
      for (i = 0; i < arguments.length; i++) { 
      var file = arguments[i] 
      var fileref = "" 
      if (loadedobjects.indexOf(file) == -1) { //Check to see if this object has not already been   added to page before proceeding 
       if (file.indexOf(".js") != -1) { //If object is a js file 
       fileref = document.createElement('script') 
       fileref.setAttribute("type", "text/javascript"); 
       fileref.setAttribute("src", file); 
       } else if (file.indexOf(".css") != -1) { //If object is a css file 
       fileref = document.createElement("link") 
       fileref.setAttribute("rel", "stylesheet"); 
       fileref.setAttribute("type", "text/css"); 
       fileref.setAttribute("href", file); 
       } 
      } 
      if (fileref != "") { 
       document.getElementsByTagName("head").item(0).appendChild(fileref) 
       loadedobjects += file + " " //Remember this object as being already added to page 
      } 
      } 
     } 
    </script> 
    </head> 

    <body>  
    <div id="leftcolumn"> 
     <a href="javascript:ajaxpage('ajaxfiles/external.htm', 'rightcolumn');">Porsche Page</a> 
     <a href="javascript:ajaxpage('ajaxfiles/external2.htm', 'rightcolumn');">Ferrari Page</a> 
     <a href="javascript:ajaxpage('ajaxfiles/external3.htm', 'rightcolumn');">Aston Martin Page</a> 

     <div style="margin-top: 2em">Load CSS & JS files</div> 
     <a href="javascript:loadobjs('ajaxfiles/style.css', 'ajaxfiles/tooltip.js');">Load "style.css" and "tooltip.js"</a>  
    </div>  
    <div id="rightcolumn" class="qqryq"><h3>Choose a page to load.</h3></div> 
    <div style="clear: left; margin-bottom: 1em"></div> 
    <form> 
     <input type="checkbox" name="qqryq" class="master" value="1">Wódz<BR> 
     <div class="test"> 
     --<input type="checkbox" name="qqryq" class="slave" value="1"><BR> 
     --<input type="checkbox" name="qqryq" class="slave" value="1"><BR> 
     --<input type="checkbox" name="qqryq" class="slave" value="1"><BR> 
     --<input type="checkbox" name="qqryq" class="slave" value="1"><BR> 
     </div> 
    </form> 

    <script> 
    $(document).ready(function() { 
     $(".slave").click(function() { 
     if (this.checked == true) { 
      $(".master").attr('checked', this.checked); 
     } 
     }); 
    }); 
    </script> 

在到底有剧本,我是在添加ajax内容加载之前使用。然后我被告知要这样修改:

<script> 
    $(document).ready(function() { 
    $(".test").on('change', '.slave', function() { 
     if (this.checked) $(".master").attr('checked', this.checked); 
    }); 
    }); 
</script> 

我应该怎么做才能使它工作?

回答

0

看起来你在第一个大块<script>块的末尾有一个流浪的* /,它会导致语法错误。删除这应该可以解决您的问题。

该块的结束(约57行左右)是目前:

 if (fileref != "") { 
      document.getElementsByTagName("head").item(0).appendChild(fileref) 
      loadedobjects += file + " " //Remember this object as being already added to page 
     } 
     } 
    } */
</script> 

它应该是:

 if (fileref != "") { 
      document.getElementsByTagName("head").item(0).appendChild(fileref) 
      loadedobjects += file + " " //Remember this object as being already added to page 
     } 
     } 
    } 
</script> 
+0

就像一个快速评论:既然你现在使用jQuery,您可能有兴趣将其用于页面的其他部分。例如,jQuery的方法['jQuery.get()'](http://api.jquery.com/jQuery.get/)的功能类似于'ajaxpage'功能。 – 2013-04-23 15:47:52

+0

谢谢,但这是应对代码的错误。我对jquery不是很熟练,所以我很难改变这个功能。 – user1857756 2013-04-23 16:09:07

+0

它没有解决我的问题我会欣赏任何其他建议 – user1857756 2013-04-23 16:10:19