我将网站上其他网页的html片段加载到内容div中。在加载回调中,我加载JS对新内容的唯一性。
alert()
之后的$.getScript
,一切正常。如果没有alert()
,则setup()
不会运行。
setTimeout/clearTimeout
。 $(document).ready
。 没有快乐。简化示例如下:
<html>
<head><!-- load jQuery, stylesheets, etc.--> </head>
<body>
<div id="menupanel">
<!-- menu clicks call jQuery: $('#content').ajaxLoad( myURL ). -->
</div>
<div id="content">
<!-- Content is inserted here by menu clicks.-->
</div>
<script type="text/javascript">
$( function(){
//Function to load a fragment from another page into this page.
function ajaxLoad(url,parms){
var url= url + ' #remoteContent';
$("#content").load( url, parms, callback(sometext) );
}
function callback(sometext) {
//unbind all events on the #content div.
$('#content').off();
//run scripts specific to newly loaded page
//and bind new events to elements on the new page.
$.getScript('getTest.js',function(){
alert('bingo'); //setup() won't run w/o this alert.
setup();
});
}
//handle menu clicks.
$("#menu a").click(function(e){
//etc...
});
}) //document ready
</script>
</body>
</html>
getTest.js
中的示例代码 function setup(){
var myCount= $("#content").find(".subhead_title").length;
$("#content #remoteContent #lotPage #lotText").find(".subhead_title").css('color','green');
console.log('count of subhead titles: '+myCount);
}