做了一個圖片的分享網站,裏面用到了圖片的瀑布流式佈局jquery+masonry,爲了實現局部刷新,用了ajax,問題來了,局部刷新之後圖片的瀑布流式佈局被破壞了。於是在論壇上發了帖子求救http://bbs.csdn.net/topics/390281730?page=1#post-392925497,照片我就不貼了,大概用了這麼幾個腳本
<script type="text/javascript" src="js/jquery.masonry.min.js"></script>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var $container = $('#container');
$container.imagesLoaded(function(){
$container.masonry({
itemSelector: '.box',
columnWidth: 5 //每兩列之間的間隙爲5像素
});
});
});
</script>
帖子上showbo版主告訴我問題出在什麼地方:ajax刷新後沒有再重新加載腳本,非常感謝,於是各種百度,當然了,還是失敗了,於是試着把第三個腳本註釋掉,發現正好是佈局被破壞掉的樣子,於是猜想,可能是這個腳本沒有加載,問題來了,怎麼加載?方案有兩種:1.在ajax加載完畢後再加載一次這個腳本(showbo提供,再次感謝)。可惜ajax都是自學,沒有到那個層次,作罷 2,。是不是可以在後臺控件的事件中進行腳本的加載?觸發局部更新的是個Imagebutton按鈕,於是這麼寫
ScriptManager.RegisterStartupScript(UpdatePanel1, ClientScript.GetType(), "myscript", "<script>Handler();</script>", false);
(實現將第三個腳本的內容裝進函數function Handler()中)利用scriptmanager來管理頁面的腳本,再次運行網站,成功。再次感謝showbo版主