user agent stylesheet 是什么鬼?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4745 次浏览 • 2017-03-01 14:45 • 来自相关话题

js 中 null和undefined的区别是啥?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 3797 次浏览 • 2017-02-20 19:59 • 来自相关话题

10 个短小却超实用的 JavaScript 代码段

zkbhj 发表了文章 • 0 个评论 • 1196 次浏览 • 2017-02-15 14:51 • 来自相关话题

JavaScript正变得越来越流行,它已经成为前端开发的第一选择,并且利用基于JavaScript语言的NodeJS,我们也可以开发出高性能的后端服务,甚至我还看到在硬件编程领域也出现了JavaScript的身影。JavaScript正在逐渐进化为一门全能的开发语言。

但用好JavaScript并不容易,你除了需要掌握它的语法并知道如何写出高质量的代码之外,还需要了解如何解决那些几乎在每个项目中都会遇到的需求场景,比如:判断日期,高亮文本,限制字符数等等,有很多第三方库可以解决这些问题,但这些库可能并非只是为解决这一个问题而创建的,这意味着你需要引入了很多无关的代码,这将使你的整个系统变得臃肿,而且也会影响到系统的性能。我的做法是,收集和使用那些常见的JavaScript代码段,并在需要时,尽可能首先使用它们。下面便是我收集的10段实用JavaScript代码,基于它们你还可以创造出更强大的JS插件或功能函数。
 
1. 判断日期是否有效

JavaScript中自带的日期函数还是太过简单,很难满足真实项目中对不同日期格式进行解析和判断的需要。JQuery也有一些第三方库来使日期相关的处理变得简单,但有时你可能只需要一个非常简单的函数,而不想引入一个庞大的第三方库。这时,你可以使用下面这段日期校验代码,它允许你自定义日期格式并进行日期有效性的校验。function isValidDate(value, userFormat) {
// Set default format if format is not provided
userFormat = userFormat || 'mm/dd/yyyy';
// Find custom delimiter by excluding
// month, day and year characters
var delimiter = /[^mdy]/.exec(userFormat)[0];
// Create an array with month, day and year
// so we know the format order by index
var theFormat = userFormat.split(delimiter);
// Create array from user date
var theDate = value.split(delimiter);
function isDate(date, format) {
var m, d, y, i = 0, len = format.length, f;
for (i; i < len; i++) {
f = format[i];
if (/m/.test(f)) m = date[i];
if (/d/.test(f)) d = date[i];
if (/y/.test(f)) y = date[i];
}
return (
m > 0 && m < 13 &&
y && y.length === 4 &&
d > 0 &&
// Check if it's a valid day of the month
d <= (new Date(y, m, 0)).getDate()
);
}
return isDate(theDate, theFormat);
}[/i][/i][/i][/i][i][i][i]使用方法:

下面这个调用返回false,因为11月份没有31天[/i][/i][/i][i][i][i][i]isValidDate('dd-mm-yyyy', '31/11/2012')[/i][/i][/i][/i][i][i][i]2. 获取一组元素的最大宽度或高度下面这个函数,对于需要进行动态排版的开发人员非常有用。[/i][/i][/i][i][i][i][i]var getMaxHeight = function ($elms) {
var maxHeight = 0;
$elms.each(function () {
// In some cases you may want to use outerHeight() instead
var height = $(this).height();
if (height > maxHeight) {
maxHeight = height;
}
});
return maxHeight;
};[/i][/i][/i][/i][i][i][i]使用方法:[/i][/i][/i][i][i][i][i]$(elements).height( getMaxHeight($(elements)) );[/i][/i][/i][/i][i][i][i]3. 高亮文本
有很多JQuery的第三方库可以实现高亮文本的功能,但我更喜欢用下面这一小段JavaScript代码来实现这个功能,它非常短小,而且可以根据我的需要去进行灵活的修改,而且可以自己定义高亮的样式。下面这两个函数可以帮助你创建自己的文本高亮插件。[/i][/i][/i][i][i][i][i]function highlight(text, words, tag) {
// Default tag if no tag is provided
tag = tag || 'span';
var i, len = words.length, re;
for (i = 0; i < len; i++) {
// Global regex to highlight all matches
re = new RegExp(words[i], 'g');
if (re.test(text)) {
text = text.replace(re, '<'+ tag +' class="highlight">$&');
}
}
return text;
}[/i][/i][/i][/i][/i][i][i][i][i]你同样会需要取消高亮的函数:[/i][/i][/i][/i][i][i][i][i][i]function unhighlight(text, tag) {
// Default tag if no tag is provided
tag = tag || 'span';
var re = new RegExp('(<'+ tag +'.+?>|<\/'+ tag +'>)', 'g');
return text.replace(re, '');
}[/i][/i][/i][/i][/i][i][i][i][i]使用方法:[/i][/i][/i][/i][i][i][i][i][i]$('p').html( highlight(
$('p').html(), // the text
['foo', 'bar', 'baz', 'hello world'], // list of words or phrases to
highlight
'strong' // custom tag
));[/i][/i][/i][/i][/i][i][i][i][i]4. 文字动效

有时你会希望给你的一段文字增加动效,让其中的每个字都动起来。你可以使用下面这段jQuery插件代码来达到这个效果。当然你需要结合一个CSS3 transition样式来达到更好的效果。[/i][/i][/i][/i][i][i][i][i][i]$.fn.animateText = function(delay, klass) {
var text = this.text();
var letters = text.split('');
return this.each(function(){
var $this = $(this);
$this.html(text.replace(/./g, '$&'));
$this.find('span.letter').each(function(i, el){
setTimeout(function(){ $(el).addClass(klass); }, delay * i);
});
});
};[/i][/i][/i][/i][/i][i][i][i][i]使用方法:[/i][/i][/i][/i][i][i][i][i][i]$('p').animateText(15, 'foo');[/i][/i][/i][/i][/i][i][i][i][i]5. 逐个隐藏元素

下面这个jQuery插件可以根据你设置的步长(间隔时间)来逐个隐藏一组元素。在列表元素的重新加载中使用,可以达到很好的效果。[/i][/i][/i][/i][i][i][i][i][i]$.fn.fadeAll = function (ops) {
var o = $.extend({
delay: 500, // delay between elements
speed: 500, // animation speed
ease: 'swing' // other require easing plugin
}, ops);
var $el = this;
for (var i=0, d=0, l=$el.length; i<l; p="" {<="">
$el.eq(i).delay(d).fadeIn(o.speed, o.ease);
}
return $el;
}[/i][/i][/i][/i][/i][i][i][i][i]使用方法:[/i][/i][/i][/i][i][i][i][i][i]$(elements).fadeAll({ delay: 300, speed: 300 });[/i][/i][/i][/i][/i][i][i][i][i]6. 限制文本字数

下面这端脚本允许你根据给定的字符长度截取文本,如果文本被截取,那么它的后面会自动带上省略号。[/i][/i][/i][/i][i][i][i][i][i]function excerpt(str, nwords) {
var words = str.split(' ');
words.splice(nwords, words.length-1);
return words.join(' ') +
(words.length !== str.split(' ').length ? '…' : '');
}[/i][/i][/i][/i][/i][i][i][i][i]7. 判断相应式布局中当前适配度

目前很多设计已经采用了响应式布局来适配网站或应用在不同设备上的显示。你经常需要在代码中判断当前处于哪一个屏幕适配度下。[/i][/i][/i][/i][i][i][i][i][i]function isBreakPoint(bp) {
// The breakpoints that you set in your css
var bps = [320, 480, 768, 1024];
var w = $(window).width();
var min, max;
for (var i = 0, l = bps.length; i < l; i++) {
if (bps[i] === bp) {
min = bps[i-1] || 0;
max = bps[i];
break;
}
}
return w > min && w <= max;
}[/i][/i][/i][/i][/i][/i][/i][i][i][i][i][i][i]使用方法:[/i][/i][/i][/i][/i][/i][i][i][i][i][i][i][i]if ( isBreakPoint(320) ) {
// breakpoint at 320 or less
}
if ( isBreakPoint(480) ) {
// breakpoint between 320 and 480
}
…[/i][/i][/i][/i][/i][/i][/i][i][i][i][i][i][i]8. 全局计数

在一些游戏或广告场景中,你需要记录用户在当前页面上点击某一个按钮的次数,这时你可以使用jQuery的.data()函数来处理:[/i][/i][/i][/i][/i][/i][i][i][i][i][i][i][i]$(element)
.data('counter', 0) // begin counter at zero
.click(function() {
var counter = $(this).data('counter'); // get
$(this).data('counter', counter + 1); // set
// do something else...
});[/i][/i][/i][/i][/i][/i][/i][i][i][i][i][i][i]9. 嵌入优酷视频[/i][/i][/i][/i][/i][/i][i][i][i][i][i][i][i]function embedYouku(link, ops) {
var o = $.extend({
width: 480,
height: 320,
params: ''
}, ops);
var id = /\?v\=(\w+)/.exec(link)[1];
return '
}[/i][/i][/i][/i][/i][/i][/i][i][i][i][i][i][i]使用方法:[/i][/i][/i][/i][/i][/i][i][i][i][i][i][i][i]embedYouku(
'http://static.youku.com/v/swf/qplayer.swf',
{'winType=adshow&VideoIDS=XMTE3NzQ0NTky&isAutoPlay=false&isShowRelatedVideo=false'}
);[/i][/i][/i][/i][/i][/i][/i][i][i][i][i][i][i]10. 创建动态菜单或下拉列表

在很多场景中,我们都需要动态地创建菜单、下拉列表或列表项。下面是一段最基础的代码实现上面的功能,你可以根据实际需要进行相应的扩展。[/i][/i][/i][/i][/i][/i][i][i][i][i][i][i][i]function makeMenu(items, tags) {
tags = tags || ['ul', 'li']; // default tags
var parent = tags[0];
var child = tags[1];
var item, value = '';
for (var i = 0, l = items.length; i < l; i++) {
item = items[i];
// Separate item and value if value is present
if (/:/.test(item)) {
item = items[i].split(':')[0];
value = items[i].split(':')[1];
}
// Wrap the item in tag
items[i] = '<'+ child +' '+
(value && 'value="'+value+'"') +'>'+ // add value if present
item +'';
}
return '<'+ parent +'>'+ items.join('') +'';
}[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][i][i][i][i][i][i][i][i][i][i]使用方法:[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][i][i][i][i][i][i][i][i][i][i][i]// Dropdown select month
makeMenu(
['January:JAN', 'February:FEB', 'March:MAR'], // item:value
['select', 'option']
);
// List of groceries
makeMenu(
['Carrots', 'Lettuce', 'Tomatos', 'Milk'],
['ol', 'li']
);[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][i][i][i][i][i][i][i][i][i][i]总结:

以上只是那些实用JavaScript代码段中的一小部分,我也建议你平时注意收集或自己编写这样的基础代码段,它们能在很多项目中使用或通过一些改造提供更完善的功能,使用这些代码段将为你节省下大量的开发时间。[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
 
[i][i][i][i][i][i][i][i][i][i]参考文档:http://www.devstore.cn/essay/essayInfo/8561.html[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i] 查看全部
JavaScript正变得越来越流行,它已经成为前端开发的第一选择,并且利用基于JavaScript语言的NodeJS,我们也可以开发出高性能的后端服务,甚至我还看到在硬件编程领域也出现了JavaScript的身影。JavaScript正在逐渐进化为一门全能的开发语言。

但用好JavaScript并不容易,你除了需要掌握它的语法并知道如何写出高质量的代码之外,还需要了解如何解决那些几乎在每个项目中都会遇到的需求场景,比如:判断日期,高亮文本,限制字符数等等,有很多第三方库可以解决这些问题,但这些库可能并非只是为解决这一个问题而创建的,这意味着你需要引入了很多无关的代码,这将使你的整个系统变得臃肿,而且也会影响到系统的性能。我的做法是,收集和使用那些常见的JavaScript代码段,并在需要时,尽可能首先使用它们。下面便是我收集的10段实用JavaScript代码,基于它们你还可以创造出更强大的JS插件或功能函数。
 
1. 判断日期是否有效

JavaScript中自带的日期函数还是太过简单,很难满足真实项目中对不同日期格式进行解析和判断的需要。JQuery也有一些第三方库来使日期相关的处理变得简单,但有时你可能只需要一个非常简单的函数,而不想引入一个庞大的第三方库。这时,你可以使用下面这段日期校验代码,它允许你自定义日期格式并进行日期有效性的校验。
function isValidDate(value, userFormat) {
// Set default format if format is not provided
userFormat = userFormat || 'mm/dd/yyyy';
// Find custom delimiter by excluding
// month, day and year characters
var delimiter = /[^mdy]/.exec(userFormat)[0];
// Create an array with month, day and year
// so we know the format order by index
var theFormat = userFormat.split(delimiter);
// Create array from user date
var theDate = value.split(delimiter);
function isDate(date, format) {
var m, d, y, i = 0, len = format.length, f;
for (i; i < len; i++) {
f = format[i];
if (/m/.test(f)) m = date[i];
if (/d/.test(f)) d = date[i];
if (/y/.test(f)) y = date[i];
}
return (
m > 0 && m < 13 &&
y && y.length === 4 &&
d > 0 &&
// Check if it's a valid day of the month
d <= (new Date(y, m, 0)).getDate()
);
}
return isDate(theDate, theFormat);
}[/i][/i][/i][/i]
[i][i][i]使用方法:

下面这个调用返回false,因为11月份没有31天
[/i][/i][/i]
[i][i][i][i]isValidDate('dd-mm-yyyy', '31/11/2012')[/i][/i][/i][/i]
[i][i][i]2. 获取一组元素的最大宽度或高度下面这个函数,对于需要进行动态排版的开发人员非常有用。[/i][/i][/i]
[i][i][i][i]var getMaxHeight = function ($elms) {
var maxHeight = 0;
$elms.each(function () {
// In some cases you may want to use outerHeight() instead
var height = $(this).height();
if (height > maxHeight) {
maxHeight = height;
}
});
return maxHeight;
};[/i][/i][/i][/i]
[i][i][i]使用方法:[/i][/i][/i]
[i][i][i][i]$(elements).height( getMaxHeight($(elements)) );[/i][/i][/i][/i]
[i][i][i]3. 高亮文本
有很多JQuery的第三方库可以实现高亮文本的功能,但我更喜欢用下面这一小段JavaScript代码来实现这个功能,它非常短小,而且可以根据我的需要去进行灵活的修改,而且可以自己定义高亮的样式。下面这两个函数可以帮助你创建自己的文本高亮插件。
[/i][/i][/i]
[i][i][i][i]function highlight(text, words, tag) {
// Default tag if no tag is provided
tag = tag || 'span';
var i, len = words.length, re;
for (i = 0; i < len; i++) {
// Global regex to highlight all matches
re = new RegExp(words[i], 'g');
if (re.test(text)) {
text = text.replace(re, '<'+ tag +' class="highlight">$&');
}
}
return text;
}[/i][/i][/i][/i][/i]
[i][i][i][i]你同样会需要取消高亮的函数:[/i][/i][/i][/i]
[i][i][i][i][i]function unhighlight(text, tag) {
// Default tag if no tag is provided
tag = tag || 'span';
var re = new RegExp('(<'+ tag +'.+?>|<\/'+ tag +'>)', 'g');
return text.replace(re, '');
}[/i][/i][/i][/i][/i]
[i][i][i][i]使用方法:[/i][/i][/i][/i]
[i][i][i][i][i]$('p').html( highlight(
$('p').html(), // the text
['foo', 'bar', 'baz', 'hello world'], // list of words or phrases to
highlight
'strong' // custom tag
));[/i][/i][/i][/i][/i]
[i][i][i][i]4. 文字动效

有时你会希望给你的一段文字增加动效,让其中的每个字都动起来。你可以使用下面这段jQuery插件代码来达到这个效果。当然你需要结合一个CSS3 transition样式来达到更好的效果。
[/i][/i][/i][/i]
[i][i][i][i][i]$.fn.animateText = function(delay, klass) {
var text = this.text();
var letters = text.split('');
return this.each(function(){
var $this = $(this);
$this.html(text.replace(/./g, '$&'));
$this.find('span.letter').each(function(i, el){
setTimeout(function(){ $(el).addClass(klass); }, delay * i);
});
});
};[/i][/i][/i][/i][/i]
[i][i][i][i]使用方法:[/i][/i][/i][/i]
[i][i][i][i][i]$('p').animateText(15, 'foo');[/i][/i][/i][/i][/i]
[i][i][i][i]5. 逐个隐藏元素

下面这个jQuery插件可以根据你设置的步长(间隔时间)来逐个隐藏一组元素。在列表元素的重新加载中使用,可以达到很好的效果。
[/i][/i][/i][/i]
[i][i][i][i][i]$.fn.fadeAll = function (ops) {
var o = $.extend({
delay: 500, // delay between elements
speed: 500, // animation speed
ease: 'swing' // other require easing plugin
}, ops);
var $el = this;
for (var i=0, d=0, l=$el.length; i<l; p="" {<="">
$el.eq(i).delay(d).fadeIn(o.speed, o.ease);
}
return $el;
}[/i][/i][/i][/i][/i]
[i][i][i][i]使用方法:[/i][/i][/i][/i]
[i][i][i][i][i]$(elements).fadeAll({ delay: 300, speed: 300 });[/i][/i][/i][/i][/i]
[i][i][i][i]6. 限制文本字数

下面这端脚本允许你根据给定的字符长度截取文本,如果文本被截取,那么它的后面会自动带上省略号。
[/i][/i][/i][/i]
[i][i][i][i][i]function excerpt(str, nwords) {
var words = str.split(' ');
words.splice(nwords, words.length-1);
return words.join(' ') +
(words.length !== str.split(' ').length ? '…' : '');
}[/i][/i][/i][/i][/i]
[i][i][i][i]7. 判断相应式布局中当前适配度

目前很多设计已经采用了响应式布局来适配网站或应用在不同设备上的显示。你经常需要在代码中判断当前处于哪一个屏幕适配度下。
[/i][/i][/i][/i]
[i][i][i][i][i]function isBreakPoint(bp) {
// The breakpoints that you set in your css
var bps = [320, 480, 768, 1024];
var w = $(window).width();
var min, max;
for (var i = 0, l = bps.length; i < l; i++) {
if (bps[i] === bp) {
min = bps[i-1] || 0;
max = bps[i];
break;
}
}
return w > min && w <= max;
}[/i][/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i]使用方法:[/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i][i]if ( isBreakPoint(320) ) {
// breakpoint at 320 or less
}
if ( isBreakPoint(480) ) {
// breakpoint between 320 and 480
}
[/i][/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i]8. 全局计数

在一些游戏或广告场景中,你需要记录用户在当前页面上点击某一个按钮的次数,这时你可以使用jQuery的.data()函数来处理:
[/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i][i]$(element)
.data('counter', 0) // begin counter at zero
.click(function() {
var counter = $(this).data('counter'); // get
$(this).data('counter', counter + 1); // set
// do something else...
});[/i][/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i]9. 嵌入优酷视频[/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i][i]function embedYouku(link, ops) {
var o = $.extend({
width: 480,
height: 320,
params: ''
}, ops);
var id = /\?v\=(\w+)/.exec(link)[1];
return '
}[/i][/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i]使用方法:[/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i][i]embedYouku(
'http://static.youku.com/v/swf/qplayer.swf',
{'winType=adshow&VideoIDS=XMTE3NzQ0NTky&isAutoPlay=false&isShowRelatedVideo=false'}
);[/i][/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i]10. 创建动态菜单或下拉列表

在很多场景中,我们都需要动态地创建菜单、下拉列表或列表项。下面是一段最基础的代码实现上面的功能,你可以根据实际需要进行相应的扩展。
[/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i][i]function makeMenu(items, tags) {
tags = tags || ['ul', 'li']; // default tags
var parent = tags[0];
var child = tags[1];
var item, value = '';
for (var i = 0, l = items.length; i < l; i++) {
item = items[i];
// Separate item and value if value is present
if (/:/.test(item)) {
item = items[i].split(':')[0];
value = items[i].split(':')[1];
}
// Wrap the item in tag
items[i] = '<'+ child +' '+
(value && 'value="'+value+'"') +'>'+ // add value if present
item +'';
}
return '<'+ parent +'>'+ items.join('') +'';
}[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i][i][i][i][i]使用方法:[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i][i][i][i][i][i]// Dropdown select month
makeMenu(
['January:JAN', 'February:FEB', 'March:MAR'], // item:value
['select', 'option']
);
// List of groceries
makeMenu(
['Carrots', 'Lettuce', 'Tomatos', 'Milk'],
['ol', 'li']
);[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i][i][i][i][i]总结:

以上只是那些实用JavaScript代码段中的一小部分,我也建议你平时注意收集或自己编写这样的基础代码段,它们能在很多项目中使用或通过一些改造提供更完善的功能,使用这些代码段将为你节省下大量的开发时间。
[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
 
[i][i][i][i][i][i][i][i][i][i]参考文档:http://www.devstore.cn/essay/essayInfo/8561.html[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]

JS怎么获取当前的URL和域名?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 2772 次浏览 • 2017-01-03 17:24 • 来自相关话题

Flex布局:一种实现垂直水平居中的布局方案

回复

zkbhj 发起了问题 • 1 人关注 • 0 个回复 • 3252 次浏览 • 2016-12-22 17:32 • 来自相关话题

简单的向下滑动按钮提示效果CSS如何实现?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 3446 次浏览 • 2016-12-09 17:20 • 来自相关话题

JS如何判断变量是否定义?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 3800 次浏览 • 2016-10-17 10:02 • 来自相关话题

前端优秀代码片段

zkbhj 发表了文章 • 0 个评论 • 2986 次浏览 • 2016-09-19 15:38 • 来自相关话题

 //购物车控制显示
$("#head_car").hover(function(){
$(this).css("background", "#FBFEE9");
$(".head_car_text").css("color", "#ff6700");
$("#car_content").css({"width":"300px"}).animate({
height:"100px"
},400).finish();
},function(){
$(this).css("background", "#424242");
$(".head_car_text").css("color", "#b0b0b0");
$("#car_content").css({"width":"300px"}).animate({
height:"0px"
},400);
})
//导航栏控制显示
$(".menu_li").hover(function(){
$("#menu_content_bg").css("border","1px solid #D0D0D0");
$(this).css("color","#ff6700");
$("#"+$(this).attr("control")).show();
$("#menu_content_bg").height(230);
},function(){
$("#"+$(this).attr("control")).hide();
$(this).css("color"," #424242");
$("#menu_content_bg").height(0);
$("#menu_content_bg").css("border","0px solid #D0D0D0");
})
//搜索框失去和获取焦点border颜色改变
$("#find_input").focus(function(){
$("#find_wrap").css("border","1px solid #ff6700");
$("#find_but").css("border-left","1px solid #ff6700");
})
$("#find_input").blur(function(){
$("#find_wrap").css("border","1px solid #F0F0F0");
$("#find_but").css("border-left","1px solid #F0F0F0");
})
//搜索按钮的背景颜色改变
$("#find_but").hover(function(){
$(this).css({"background":"#ff6700",color:"#fff"});
},function(){
$(this).css({"background":"#fff",color:"#424242"});
})
//菜单栏的显示
$("#banner_menu_wrap").children().hover(function(){
$(this).css("background","#ff6700");
$(this).children(".banner_menu_content").css("border","1px solid #F0F0F0").show();
},function(){
$(this).css("background","none");
$(this).children(".banner_menu_content").css("border","0px solid #F0F0F0").hide();
}) 查看全部
 
//购物车控制显示
$("#head_car").hover(function(){
$(this).css("background", "#FBFEE9");
$(".head_car_text").css("color", "#ff6700");
$("#car_content").css({"width":"300px"}).animate({
height:"100px"
},400).finish();
},function(){
$(this).css("background", "#424242");
$(".head_car_text").css("color", "#b0b0b0");
$("#car_content").css({"width":"300px"}).animate({
height:"0px"
},400);
})

//导航栏控制显示
$(".menu_li").hover(function(){
$("#menu_content_bg").css("border","1px solid #D0D0D0");
$(this).css("color","#ff6700");
$("#"+$(this).attr("control")).show();
$("#menu_content_bg").height(230);
},function(){
$("#"+$(this).attr("control")).hide();
$(this).css("color"," #424242");
$("#menu_content_bg").height(0);
$("#menu_content_bg").css("border","0px solid #D0D0D0");
})

//搜索框失去和获取焦点border颜色改变
$("#find_input").focus(function(){
$("#find_wrap").css("border","1px solid #ff6700");
$("#find_but").css("border-left","1px solid #ff6700");
})
$("#find_input").blur(function(){
$("#find_wrap").css("border","1px solid #F0F0F0");
$("#find_but").css("border-left","1px solid #F0F0F0");
})

//搜索按钮的背景颜色改变
$("#find_but").hover(function(){
$(this).css({"background":"#ff6700",color:"#fff"});
},function(){
$(this).css({"background":"#fff",color:"#424242"});
})

//菜单栏的显示
$("#banner_menu_wrap").children().hover(function(){
$(this).css("background","#ff6700");
$(this).children(".banner_menu_content").css("border","1px solid #F0F0F0").show();
},function(){
$(this).css("background","none");
$(this).children(".banner_menu_content").css("border","0px solid #F0F0F0").hide();
})

jquery中ajax请求error函数和及其参数详细说明

zkbhj 发表了文章 • 0 个评论 • 1508 次浏览 • 2016-09-19 10:38 • 来自相关话题

使用jquery的ajax方法向服务器发送请求的时候,常常需要使用到error函数进行错误信息的处理,本文详细的说明了ajax中error函数和函数中各个参数的用法。

一般error函数返回的参数有三个: function(jqXHR jqXHR, String textStatus, String errorThrown)。常见调用代码如下:
$.ajax({
url: '/Home/AjaxGetData',
success: function (data) {
alert(data);
},
error: function (jqXHR, textStatus, errorThrown) {
/*错误信息处理*/
}
});这里对这三个参数做详细说明。
 
第一个参数 jqXHR jqXHR:这里的jqXHR是一个jqXHR对象,在Jquery1.4和1.4版本之前返回的是XMLHttpRequest对象,1.5版本以后则开始使用jqXHR对象,该对象是一个超集,就是该对象不仅包括XMLHttpRequest对象,还包含其他更多的详细属性和信息。

这里主要有4个属性:
readyState :当前状态,0-未初始化,1-正在载入,2-已经载入,3-数据进行交互,4-完成。status  :返回的HTTP状态码,比如常见的404,500等错误代码。statusText :对应状态码的错误信息,比如404错误信息是not found,500是Internal Server Error。responseText :服务器响应返回的文本信息
第二个参数 String textStatus:返回的是字符串类型,表示返回的状态,根据服务器不同的错误可能返回下面这些信息:"timeout"(超时), "error"(错误), "abort"(中止), "parsererror"(解析错误),还有可能返回空值。
 
第三个参数 String errorThrown:也是字符串类型,表示服务器抛出返回的错误信息,如果产生的是HTTP错误,那么返回的信息就是HTTP状态码对应的错误信息,比如404的Not Found,500错误的Internal Server Error。
 
示例代码:
 
$.ajax({
url: '/AJAX请求的URL',
success: function (data) {
alert(data);
},
error: function (jqXHR, textStatus, errorThrown) {
/*弹出jqXHR对象的信息*/
alert(jqXHR.responseText);
alert(jqXHR.status);
alert(jqXHR.readyState);
alert(jqXHR.statusText);
/*弹出其他两个参数的信息*/
alert(textStatus);
alert(errorThrown);
}
});
官方文档地址:http://api.jquery.com/jQuery.ajax/ 查看全部
使用jquery的ajax方法向服务器发送请求的时候,常常需要使用到error函数进行错误信息的处理,本文详细的说明了ajax中error函数和函数中各个参数的用法。

一般error函数返回的参数有三个: function(jqXHR jqXHR, String textStatus, String errorThrown)。常见调用代码如下:
$.ajax({
url: '/Home/AjaxGetData',
success: function (data) {
alert(data);
},
error: function (jqXHR, textStatus, errorThrown) {
/*错误信息处理*/
}
});
这里对这三个参数做详细说明。
 
第一个参数 jqXHR jqXHR:这里的jqXHR是一个jqXHR对象,在Jquery1.4和1.4版本之前返回的是XMLHttpRequest对象,1.5版本以后则开始使用jqXHR对象,该对象是一个超集,就是该对象不仅包括XMLHttpRequest对象,还包含其他更多的详细属性和信息。

这里主要有4个属性:
  • readyState :当前状态,0-未初始化,1-正在载入,2-已经载入,3-数据进行交互,4-完成。
  • status  :返回的HTTP状态码,比如常见的404,500等错误代码。
  • statusText :对应状态码的错误信息,比如404错误信息是not found,500是Internal Server Error。
  • responseText :服务器响应返回的文本信息

第二个参数 String textStatus:返回的是字符串类型,表示返回的状态,根据服务器不同的错误可能返回下面这些信息:"timeout"(超时), "error"(错误), "abort"(中止), "parsererror"(解析错误),还有可能返回空值。
 
第三个参数 String errorThrown:也是字符串类型,表示服务器抛出返回的错误信息,如果产生的是HTTP错误,那么返回的信息就是HTTP状态码对应的错误信息,比如404的Not Found,500错误的Internal Server Error。
 
示例代码:
 
$.ajax({
url: '/AJAX请求的URL',
success: function (data) {
alert(data);
},
error: function (jqXHR, textStatus, errorThrown) {
/*弹出jqXHR对象的信息*/
alert(jqXHR.responseText);
alert(jqXHR.status);
alert(jqXHR.readyState);
alert(jqXHR.statusText);
/*弹出其他两个参数的信息*/
alert(textStatus);
alert(errorThrown);
}
});

官方文档地址:http://api.jquery.com/jQuery.ajax/

如何用JS判断手机端还是PC端访问?

回复

zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4781 次浏览 • 2016-09-18 17:39 • 来自相关话题