JS获取自身所在文件的目录路径

很多时候我们都需要在js文件中获取该文件的详细路径,以便根据其他文件与该js的相对位置计算并设置其他一些文件如图片或样式或脚本的目录路径。我们一般都这样做:

假设外部js文件的文件名为:test.js,则在test.js中都这样写: 继续阅读“JS获取自身所在文件的目录路径”

JS实现图片不存在时显示默认图片

每个网站都会有图片的存在,很多时候我们需要在网页上显示各种各样的图片,当图片数量越来越多时,难免会出现图片丢失的情况,当某些图片不存在时,网页上的红叉会显得很难看,这时候我们可以选择显示默认图片来代替,这样会显得非常有人性化。
利用 image 对象的 onerror 事件来判断,出错则更换 image 对象的 src 为默认图片的 URL。

继续阅读“JS实现图片不存在时显示默认图片”

js 时间戳转为日期格式

什么是Unix时间戳(Unix timestamp): Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

继续阅读“js 时间戳转为日期格式”

JavaScript中检测变量是否存在

在编写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>

继续阅读“JavaScript中检测变量是否存在”

Jquery动态加载css文件/js文件

第一种写法:
$(“<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 JavaScript

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,并注明dataTypescript

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

JS的sort按照数值的大小对数字进行排序

按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数:

<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”);
        }
    });
});