很多时候我们都需要在js文件中获取该文件的详细路径,以便根据其他文件与该js的相对位置计算并设置其他一些文件如图片或样式或脚本的目录路径。我们一般都这样做:
假设外部js文件的文件名为:test.js,则在test.js中都这样写: 继续阅读“JS获取自身所在文件的目录路径”
MangoLau's blogs.
很多时候我们都需要在js文件中获取该文件的详细路径,以便根据其他文件与该js的相对位置计算并设置其他一些文件如图片或样式或脚本的目录路径。我们一般都这样做:
假设外部js文件的文件名为:test.js,则在test.js中都这样写: 继续阅读“JS获取自身所在文件的目录路径”
每个网站都会有图片的存在,很多时候我们需要在网页上显示各种各样的图片,当图片数量越来越多时,难免会出现图片丢失的情况,当某些图片不存在时,网页上的红叉会显得很难看,这时候我们可以选择显示默认图片来代替,这样会显得非常有人性化。
利用 image 对象的 onerror 事件来判断,出错则更换 image 对象的 src 为默认图片的 URL。
在编写JavaScript程序时往往需要检测某一变量是否存在,这是一件非常简单的工作,但如果不细心也会遇到一些问题。主要有一些几点:
1、普通变量
<script type=”text/javascript”>
if(variable){
alert(‘rain man’);
}
</script>
这时会出现‘variable is not defined’的错误,如果改成下面就会弹出预期的对话框:
<script type=”text/javascript”>
if( typeof variable == ‘undefined’ ){
alert(‘rain man’);
}
</script>
第一种写法:
$(“<link>”)
.attr({ rel: “stylesheet”,
type: “text/css”,
href: “site.css”
})
.appendTo(“head”);
第二种写法:
$(“head”).append(“<link>”);
css = $(“head”).children(“:last”);
css.attr({
rel: “stylesheet”,
type: “text/css”,
href: “/Content/Site.css”
});
第三种写法(直接在javascript中使用):
function addCSS() {
var link = document.createElement(‘link’);
link.type = ‘text/css’;
link.rel = ‘stylesheet’;
link.href = ‘/Content/Site.css’;
document.getElementsByTagName(“head”)[0].appendChild(link);
}
jQuery内置了一个方法可以加载单一的js文件;当加载完成后你可以在回调函数里执行后续操作。最基本的使用jQuery.getScript
的方法是这样:
jQuery.getScript("/path/to/myscript.js", function(data, status, jqxhr) { /* 做一些加载完成后需要执行的事情 */ });
这个getScript
方法返回一个jqxhr,你可以像下面这样用它:
jQuery.getScript("/path/to/myscript.js") .done(function() { /* 耶,没有问题,这里可以干点什么 */ }) .fail(function() { /* 靠,马上执行挽救操作 */ });
最常见的使用jQuery.getScript
的地方是延迟加载一个js插件,而且在加载完成时执行它:
jQuery.getScript("jquery.cookie.js") .done(function() { jQuery.cookie("cookie_name", "value", { expires: 7 }); });
如果你需要更高级的功能,比如加载多个脚本,或加载不同类型的文件(文本文件,图片,css等),我建议你使用一个专门的JavaScript加载工具。如果是为了延迟加载一个js插件,避免每个页面都去加载,这个getScript
很完美了。
有一个非常重要的问题,使用jQuery.getScript
时,你需要用一个时间戳字符串跟在需要加载的js地址后面,防止它被缓存。但是,如果你希望这个脚本被缓存,你需要设置全局缓存变量,像下面这样:
jQuery.ajaxSetup({ cache: true });
如果你并不想使用全局缓存变量,你也可以使用jQuery.ajax
,并注明dataType
是script
:
jQuery.ajax({ url: "jquery.cookie.js", dataType: "script", cache: true }).done(function() { jQuery.cookie("cookie_name", "value", { expires: 7 }); });
参考:http://www.webhek.com/loading-scripts-jquery
按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数:
<script type=”text/javascript”>
function sortNumber(a,b) {
return a – b
}
var arr = new Array(6)
arr[0] = “10”
arr[1] = “5”
arr[2] = “40”
arr[3] = “25”
arr[4] = “1000”
arr[5] = “1”
document.write(arr + “<br />”)
document.write(arr.sort(sortNumber))
</script>
// 键盘事件
1、keydown()
keydown事件会在键盘按下时触发.
2、keyup()
keyup事件会在按键释放时触发,也就是你按下键盘起来后的事件
3、keypress()
keypress事件会在敲击按键时触发,我们可以理解为按下并抬起同一个按键
// 回车键事件
// 绑定键盘按下事件
$(document).keypress(function(e) {
// 回车键事件
if(e.which == 13) {
jQuery(“.confirmButton”).click();
}
});
// 上下键事件
$(document).keydown(function(event){
//判断当event.keyCode 为37时(即左方面键),执行函数to_left();
//判断当event.keyCode 为39时(即右方面键),执行函数to_right();
if(event.keyCode == 37){
to_left();
}else if (event.keyCode == 39){
to_right();
}
});
说明:由于浏览器键盘按下事件的不同,可能导致部分事件不能正常操作,所以推荐keydown事件进行操作!
Jquery 监视按键,按下回车键触发某方法
<script type=”text/javascript”>
$(function () {
$(‘input:text:first’).focus(); //把焦点放在第一个文本框
var $inp = $(‘input’); //所有的input元素
$inp.keypress(function (e) { //这里给function一个事件参数命名为e,叫event也行,随意的,e就是IE窗口发生的事件。
var key = e.which; //e.which是按键的值
if (key == 13) {
alert(“aaa”);
}
});
});