var initNews = function () { var nav = mex.shell.curNav, codeType = nav.data && nav.data.codeType || "xxyw", grid = $("#news_ul").datagrid({ url : "http://61.129.42.57:9080/fudan/sid/newsService/vid/index", type : "POST", data : { codeType : codeType }, linkUrl : "detail.html", dataType : "jsonp", error:function (state,error) { $('#news_error').html("state:"+state+"</br>Error:"+error); $('#news_pop').popup('open'); mex.shell.hideLoading(); } }); self.grid = grid; self.grid.datagrid("refresh",{success : onDataLoaded}); //listen to the navigation event from shell mex.shell.onNav(refNews); };
$('#detail_page').live('pageshow',function (e) { mex.shell.showLoading(); var baseUrl = 'http://61.129.42.57:9080/fudan', url = baseUrl+'/sid/newsService/vid/newsDetail?idNews='+self.idNews+'&width='+$(window).width()+'&height='+$(window).height(), page = e.target; if(self.idNews){ $.ajax({url:url, type:'GET', dataType:'jsonp', success:function (data) { mex.shell.hideLoading(); var news = data.jsonp.data.data.news, imgs = data.jsonp.data.data.imgList, content = $('#detail_info'); logger.logInfo('data:',data); // $('#detail_inner').append("<div id='detail_pop' data-role='popup' data-corners='false'>"+ // "<a href='#' data-rel='back' data-role='button' data-theme='a' data-icon='delete' "+ // "data-iconpos='notext' class='ui-btn-left'>Close</a></div>"); if(imgs&&imgs.length){ var imgsContainer = $('<div></div>'); for(var i=0;i<imgs.length;i++){ var img = imgs[i], $img = $("<img style='float:right;clear:right;margin:2px;' "+ "width=80 height=70 cs-baseUrl='"+baseUrl+"' cs-url='"+img.path+"' />"); utility.loadImg($img[0],'css/images/default.png'); imgsContainer.append($img); var url = baseUrl+img.path; showImg($img,url,img.width,img.height); } content.append(imgsContainer); } if(news){ content.append(news.content); } self.scroller = new iScroll('detail_content'); }}); } $('#detail_pop').bind({ popupafterclose:function (e,ui) { $(this).find('img').remove(); } }); });
var onDataLoaded = function () { mex.shell.hideLoading(); //self.scroller = new iScroll('news_content'); if (self.scroller) { self.scroller.refresh(); } else { createScroller(); } self.scroller.scrollTo(0,self.topOffset,0,null); }
$("#news_page").live("pageshow", function (event) { if(self.grid) return; mex.shell.showLoading(); //because the device ready is later than the pageshow,so we get data until the device is ready mex.device.ready(initNews); mex.device.simulateReady(); });
var addNavs = function () { mex.shell.addNavs( [{ id : "hotNews", title : "学校要闻", icon : "grid", url : 'index.html', data : { codeType : "xxyw" } }, { id : "syntheticalNews", title : "综合要闻", icon : "grid", url : 'index.html', data : { codeType : "zhxw" } }, { id : "mediaNews", title : "媒体视角", icon : "grid", url : 'index.html', data : { codeType : "mtsj" } }, { id : "alumni", title : "校友动态", icon : "grid", url : 'index.html', data : { codeType : "xydt" } } ]); mex.shell.activeNav(0); };
prepare = function () { //prepare from page if(!none && $from){ //if the direction is reverse then start animation after from page initialization if(reverse){ transitionComplete($from,already); } $from.css('-webkit-transform',createTransform('0%')); $from.css('-webkit-transition','-webkit-transform 250ms linear'); } //prepare to page $to.css( "z-index", -10 ); $to.height(mex.shell.getContentHeight()); $to.addClass( $.mobile.activePageClass); $.mobile.focusPage( $to ); if(!none && $from){ if(!reverse){ var oldValue = $to[0].style.webkitTransform, tValue = createTransform('100%'); //due to none of clearing the tranform style if the $to page is the //$from page of last time transition,here need to check if the transform //is already ,if it is ,then excutes immediately. if(oldValue == tValue){ already(); }else{ //if the direction is not revrese,then start the animation after the to page initialization transitionComplete($to,already); $to.css('-webkit-transform',tValue); } } else{ $to.css('-webkit-transform',createTransform('-100%')); } $to.css('-webkit-transition','-webkit-transform 250ms linear'); } else{ startOut(); startIn(); } },
var refNews = function (options) { var grid = $("#news_ul").data("datagrid"); if (grid) { grid.reset(); grid.option({ data : options.data, caching : false }); mex.shell.showLoading(); grid.refresh({success : function () { onDataLoaded(); self.scroller.scrollTo(0,self.topOffset,0,null); }}); } };
success:function (data) { mex.shell.hideLoading(); var news = data.jsonp.data.data.news, imgs = data.jsonp.data.data.imgList, content = $('#detail_info'); logger.logInfo('data:',data); // $('#detail_inner').append("<div id='detail_pop' data-role='popup' data-corners='false'>"+ // "<a href='#' data-rel='back' data-role='button' data-theme='a' data-icon='delete' "+ // "data-iconpos='notext' class='ui-btn-left'>Close</a></div>"); if(imgs&&imgs.length){ var imgsContainer = $('<div></div>'); for(var i=0;i<imgs.length;i++){ var img = imgs[i], $img = $("<img style='float:right;clear:right;margin:2px;' "+ "width=80 height=70 cs-baseUrl='"+baseUrl+"' cs-url='"+img.path+"' />"); utility.loadImg($img[0],'css/images/default.png'); imgsContainer.append($img); var url = baseUrl+img.path; showImg($img,url,img.width,img.height); } content.append(imgsContainer); } if(news){ content.append(news.content); } self.scroller = new iScroll('detail_content'); }});
prepare = function () { //prepare from page if(!none && $from){ //if the direction is reverse then start animation after from page initialization if(reverse){ transitionComplete($from,already); } $from.css('-webkit-transform','translate'+translateOpen+'0%,0%'+translateClose); $from.css('-webkit-transition','-webkit-transform 250ms ease-out'); } //prepare to page $to.addClass( $.mobile.activePageClass); $.mobile.focusPage( $to ); if(!none && $from){ $to.height(mex.shell.getContentHeight()); $to.css('opacity',0); if(!reverse){ //if the direction is not revrese,then start the animation after the to page initialization transitionComplete($to,already); $to.css('-webkit-transform','translate'+translateOpen+'100%,0%'+translateClose); } else $to.css('-webkit-transform','translate'+translateOpen+'-100%,0%'+translateClose); $to.css('-webkit-transition','-webkit-transform 250ms ease-out'); } else{ startOut(); startIn(); } },
success:function (data) { mex.shell.hideLoading(); var news = data.jsonp.data.data.news, imgs = data.jsonp.data.data.imgList, content = $('#detail_info'); logger.logInfo('data:',data); if(imgs&&imgs.length){ var imgsContainer = $('<div></div>'); for(var i=0;i<imgs.length;i++){ var img = imgs[i], $img = $("<img style='float:right;clear:right;margin:2px;' "+ "width=80 height=70 cs-baseUrl='"+baseUrl+"' cs-url='"+img.path+"' />"); utility.loadImg($img[0],'css/images/default.png'); imgsContainer.append($img); var url = baseUrl+img.path; showImg($img,url,img.width,img.height); } content.append(imgsContainer); } if(news){ content.append(news.content); } self.scroller = new iScroll('detail_content'); }});
$("#news_page").live("pageremove", function (event) { self.scroller.destroy(); self.scroller = null; mex.shell.unNav(refNews); });
$('#news_page').live('pagebeforecreate',function e() { if (!mex.shell.hasNav()) addNavs(); });
error:function (state,error) { $('#news_error').html("state:"+state+"</br>Error:"+error); $('#news_pop').popup('open'); mex.shell.hideLoading(); }