`
//绑定事件
$(window).scroll(function(){
$ (this).scrollTop (0)
})
//解绑
$(window).unbind("scroll");
`
`
//绑定事件
$(window).scroll(function(){
$ (this).scrollTop (0)
})
//解绑
$(window).unbind("scroll");
`
MySQL server version for the right syntax to use near
遇到这串错误,经查询是因为输入 单双引号未转义导致,解决办法如下
addslashes($sqlkey)
js
if(window.FileReader) { var FileController = u.file.upload; // 接收上传文件的后台地址 // FormData 对象 var form = new FormData(); form.append("author", "hooyes"); // 可以增加表单数据 form.append("beginTime", data.beginTime); for(var i = 0 , len=data.file.length; i <len;i++){ var fileObj = document.getElementById("file").files[i]; // 获取文件对象 form.append("file"+i, fileObj); // 文件对象 } // XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); xhr.open("post", FileController, true); xhr.onreadystatechange = function () { if(xhr.readyState==4){ var ret =JSON.parse(this.response); if(ret.code==1){ alert("成功") } } }; xhr.send(form); } else { alert("该浏览器不支持,请换Chrome内核浏览器"); }
controller
$upload = new \Think\Upload (); // 实例化上传类 $upload->maxSize = 0; // 设置附件上传大小 $upload->exts = array ( 'csv' ); // 设置附件上传类型 $upload->rootPath = './Public/uploadFile//'; // 设置附件上传根目录 $upload->savePath = ''; // 设置附件上传(子)目录 $now = $_SERVER['REQUEST_TIME']; $upload->saveName = array('uniqid',$now);//防重名的保存规则 $info = $upload->upload (); // 上传文件
来源:http://blog.sina.com.cn/s/blog_bbf087de0102xy5c.html-Mpower
$now = $_SERVER['REQUEST_TIME']; $upload->saveName = array('uniqid',$now);//上传文件的保存规则
来源里面有thinkphp3.1的解决方案
typeof 判断基本类型
if(typeof(aaa)=="string"){ ? alert("字符串来的"); }
instanceof 判断对象类型(数组为Array)
if(ret.data instanceof Array){ alert("这是数组") }
点哪个哪个显示加载
js
//调用 $(even).mini_load();//显示加载 $(even).mini_loaded();//回到原来的样子 $.fn.extend({ mini_load:function(msg,color){ var msg=(typeof(msg)=="undefined")?"操作中...":msg; var that=$(this); var that_copy=$(that).clone(); var color=(typeof(color)=="undefined")?"white":"black"; var img_load=document.createElement("span") img_load.className="span_loading"; that_copy.attr("copy","loadingcopy"); that_copy.html(msg); that_copy.prepend(img_load); $(that_copy).removeAttr("onclick"); that.hide(); that.after(that_copy); }, mini_loaded:function(){ var that=$(this); that.show(); that.siblings("[copy='loadingcopy']").remove(); } })
css
.span_loading{ background: url(../images/loading-white.gif); width:20px; height: 20px; display: inline-block; background-size: 100%; vertical-align:middle; }
// 设置禁止访问的模块列表 'MODULE_DENY_LIST' => array('Common','Runtime','Api'),
同样也可设置可以访问的模块和默认模块,代码如下:
'MODULE_ALLOW_LIST' => array('Home','Admin','User'), 'DEFAULT_MODULE' => 'Home',
如果项目比较简单,还可以设置单模块,代码如下:
// 关闭多模块访问 'MULTI_MODULE' => false, 'DEFAULT_MODULE' => 'Home',
// 绑定Admin模块到当前入口文件 define('BIND_MODULE','Admin'); define('APP_PATH','./Application/'); require './ThinkPHP/ThinkPHP.php';
来源:http://www.cnblogs.com/moqiutao/-风雨后见彩虹
// 为了不随意的创建全局变量,我们将我们的代码放在一个自己调用自己的匿名函数中,这是一个好的编程习惯 (function(window, document){ // 获取要操作的元素 var video = document.getElementById("video"); var videoControls = document.getElementById("videoControls"); var videoContainer = document.getElementById("videoContainer"); var controls = document.getElementById("video_controls"); var playBtn = document.getElementById("playBtn"); var fullScreenBtn = document.getElementById("fullScreenBtn"); var progressWrap = document.getElementById("progressWrap"); var playProgress = document.getElementById("playProgress"); var fullScreenFlag = false; var progressFlag; // 创建我们的操作对象,我们的所有操作都在这个对象上。 var videoPlayer = { init: function(){ var that = this; video.removeAttribute("controls"); bindEvent(video, "loadeddata", videoPlayer.initControls); videoPlayer.operateControls(); }, initControls: function(){ videoPlayer.showHideControls(); }, showHideControls: function(){ bindEvent(video, "mouseover", showControls); bindEvent(videoControls, "mouseover", showControls); bindEvent(video, "mouseout", hideControls); bindEvent(videoControls, "mouseout", hideControls); }, operateControls: function(){ bindEvent(playBtn, "click", play); bindEvent(video, "click", play); bindEvent(fullScreenBtn, "click", fullScreen); bindEvent(progressWrap, "mousedown", videoSeek); } } videoPlayer.init(); // 原生的JavaScript事件绑定函数 function bindEvent(ele, eventName, func){ if(window.addEventListener){ ele.addEventListener(eventName, func); } else{ ele.attachEvent('on' + eventName, func); } } // 显示video的控制面板 function showControls(){ videoControls.style.opacity = 1; } // 隐藏video的控制面板 function hideControls(){ // 为了让控制面板一直出现,我把videoControls.style.opacity的值改为1 videoControls.style.opacity = 1; } // 控制video的播放 function play(){ if ( video.paused || video.ended ){ if ( video.ended ){ video.currentTime = 0; } video.play(); playBtn.innerHTML = "暂停"; progressFlag = setInterval(getProgress, 60); } else{ video.pause(); playBtn.innerHTML = "播放"; clearInterval(progressFlag); } } // 控制video是否全屏,额这一部分没有实现好,以后有空我会接着研究一下 function fullScreen(){ if(fullScreenFlag){ videoContainer.webkitCancelFullScreen(); } else{ videoContainer.webkitRequestFullscreen(); } } // video的播放条 function getProgress(){ var percent = video.currentTime / video.duration; playProgress.style.width = percent * (progressWrap.offsetWidth) - 2 + "px"; showProgress.innerHTML = (percent * 100).toFixed(1) + "%"; } // 鼠标在播放条上点击时进行捕获并进行处理 function videoSeek(e){ if(video.paused || video.ended){ play(); enhanceVideoSeek(e); } else{ enhanceVideoSeek(e); } } function enhanceVideoSeek(e){ clearInterval(progressFlag); var length = e.pageX - progressWrap.offsetLeft; var percent = length / progressWrap.offsetWidth; playProgress.style.width = percent * (progressWrap.offsetWidth) - 2 + "px"; video.currentTime = percent * video.duration; progressFlag = setInterval(getProgress, 60); } }(this, document))
var p = document.getElementsByTagName("p")[0]; var cP = p.cloneNode();//克隆p节点 var cP = p.cloneNode(true);//克隆p节点,深度克隆,克隆节点以及节点下面的子内容。