标签:jquery

浏览模式: 标准 | 列表 | 图文
jQuery Alert and YmPrompt

jQuery Alert and YmPrompt

不知道从什么时候起,网页上那烦人的alert,prompt,confirm框都成了很多人讨厌的对象,因为他的样式太丑了。ExtJS中的alert就是适合他自己的样式的弹出,可是其他不是框架的代码中要有漂亮的对话框怎么办?
jQuery Alert 是jQuery的官方插件,Ymprompt是国内开发人员写的,其于jQuery的一个插件,当然是各有所长。

jQuery Alert相对比较简单一点,用法也简单,而Ymprompt就复杂的多了。

这是关于jQuery Alert的介绍:

这个Jquery插件的目的是替代JavaScript的标准函数alert(),confirm(),和 prompt()。这个插件有如下这些特点:

1:这个插件可以使你可以支持你自己的css制定。使你的网站看起来更专业。
2:允许你自定义对话框的标题。
3:在IE7中,可以使你避免使用JavaScript 的prompt()函数带来的页面重新加载。
4:这些方法都模拟了Windows的模式对话框。在你改变改变浏览器窗口大小时候,它能够自适应用户窗口的调整。
5:如果你引入了jQuery UI Draggable plugin插件,那这个插件也可以被自由拖动。

而Ymprompt在这里有一个简单的介绍:http://www.ajaxbbs.net/test/ymPrompt4.0/demo.html,写的很多,但都是document,并非介绍,所以我就不贴了。

jQuery Alert在官方有的下载,我也就不提供啦。可以尝试一下。

在ThinkSNS中,用的是ymprompt,所以我才看了一下这玩意,但并非能够完全满足我的需求,如果仅仅使用简单的alert、prompt、confirm之类的,应该是够用了。

这么好的jQuery,你给用成这样

这么好的jQuery,你给用成这样

最近因为写了点小代码,然后有两个朋友在问我jQuery的代码,但是看的不太舒服,这时候突然有人在群里贴了幅图,于是俺就施施然的把图存为表情,并发给我那两个朋友。
430eb4db85eced4ae5555fb3fccff89f
呵呵,当然也是随口说说,只是很多人在使用了jQuery的xpath功能后,却仍然在使用传统的JS方法读取和写入数据等,完全没有应用一些高级方法。比如$(":input:checkbox:checked")这样优雅的代码都不用。还有类似于$("#li :not(:eq(1))"),这样的代码又怎么样呢?
所以,常备着一本手册,经常翻翻是不是明明有现成的功能,却还在不停的重复劳动?

基于jQuery的singleEdit

基于jQuery的singleEdit

官方的例子用起来很爽,所以,如果觉得有适用的话,可以尝试一用。当然我不认为这玩意可以真正用在前台上,如果用于后台还是可以接受的。唯一可以尝试用于前台的就是日历控件,长的也不错。压缩后20K还是可以被广大人民群众所接受。如果可以再分拆,或许会更小吧?试了一下,感觉效率不是特别的高?但真的扔在后台还是问题不大的。
样式也不错。。。。
官方在http://www.wbfsaworkstation.com.cn/#,好长的网址啊
47d986062c92244c9a4fde8d90d8c13b
b4a00f4e8648ff1de38f8f34baa99173

jQuery EasyUI

这两天在博客园不停的看到有人在讲这个EasyUI,而且cssrain也在第一期的资讯中介绍了这个UI框架。当然我在资讯前已经看到这个UI框架的介绍了,并有幸下载了一下,才知道这个插件,应该是中国人写的。。。

用起来,整体感觉还行,easyUI的介绍是说轻量级替代extjs框架的UI框架。事实上从应用方面来说,或许是比extjs简单,因为需要写js代码的地方很少,但并不代表BUG不少。例子里就有很多BUG。所以,如果是简单的用,那还是可以接受的。最起码那个login页面还是可以尝试着套用一下。然后就是那个layout。。。
login的demo中,如果按了最小化,窗口都消失了。如果页面上没有open window,那,如何再次打开这个窗口?呵呵。
当然,这个框架看上去很美。也不算特别大。他的一些参数是直接写在html标签中的,也就是说他利用的是html标签,而不象extjs,纯粹是用js代码来实现。
更多的参考可以看这里:http://jquery-easyui.wikidot.com/tutorial
目前不建议在项目中使用,如果是尝试性的项目,而且美工又不好的人,是可以尝试一下,最起码不会象extjsv那样难学。也没有那样耗资源吧。

jQuery 源码阅读器

jQuery发展到现在,经历过很多版本。大多数用户都是经历过1.2.6,1.3.1,和如今 的1.4.1的,每次每版本发布的时候都会有新功能实现,而且作者还会说,我们改进了XXX功能。
那么,对于一个用户来说,我们当然是不关心这些函数如何实现的。可如果你想学习jQuery的原理和基本的实现方法,阅读源码就显得至关重要了。
源码有上千行。怎么办?为了某一个方法,你不停的看1.2.6和1.3.1以及1.4.1的代码?再分析?
不用这么麻烦的。真的,你看这里:http://james.padolsey.com/jquery/
网站的title直接就写了:jQuery source viewer,呵呵。选择一个版本,输入你想要看的内容。下面就直接显示出来了【oh ,居然还是代码自动完成+ajax?】
代码显示的时候,你还可以选择一个查看样式呢。emacs?vim?各种各样的配色都有。
不过。。好象代码没有注释的。感觉有点遗憾。
faf756ad65e8845083202155f2a3f3b6

jQuery操作select

jQuery操作select

jQuery这个框架方便了我们对于HTML元素的操作,本来以为自己对于Select操作也算是熟悉了,但上午在测试的时候才发现自己了解的还真不多。

看了一下jQuery的一些方法后,理出了一些常用的方法,列在下面:

//获取第一个option的值
$('#test option:first').val();
//最后一个option的值
$('#test option:last').val();
//获取第二个option的值
$('#test option:eq(1)').val();
//获取选中的值
$('#test').val();
$('#test option:selected').val();
//设置值为2的option为选中状态
$('#test').attr('value','2');
//设置第一个option为选中
$('#test option:last').attr('selected','selected');
$("#test").attr('value' , $('#test option:last').val());
$("#test").attr('value' , $('#test option').eq($('#test option').length - 1).val());
//获取select的长度
$('#test option').length;
//添加一个option
$("#test").append("<option value='9'>ff</option>");
$("<option value='9'>ff</option>").appendTo("#test");
//添除选中项
$('#test option:selected').remove();
//指定项选中
$('#test option:first').remove();
//指定值被删除
$('#test option').each(function(){
if( $(this).val() == '5'){
$(this).remove();
}
});
$('#test option[value=5]').remove();

//获取第一个Group的标签
$('#test optgroup:eq(0)').attr('label');
//获取第二group下面第一个option的值
$('#test optgroup:eq(1) :option:eq(0)').val();

想来应该够用了吧?呵呵

JQuery — this 和 $(this) 的区别

JQuery — this 和 $(this) 的区别

在美拓的BLOG【http://meito.22web.net/?p=51】上面看到这篇文章,先说说我的理解吧。

jQuery的代码中,this是代表了当前对象。例如:$("#test").click(function(){ alert(this.value )});,在这个方法里,如果用了this,那就是相当于直接使用了 test 元素这个对象,有点象document.getElementById("#test")一样【说的我自己都迷糊了。。。】在这个方法中的this,就是ID为test的元素本身

而$(this),则是把这个元素对象重新进行了 jQuery的包装。。。

说的太乱了。。。。直接看美拓的原文吧。

-------原文开始-------------

起初以为this和$(this)就是一模子刻出来。但是我在阅读时,和coding时发现,总不是一回事。
What is “this”?

In many object-oriented programming languages, this (or self) is a keyword which can be used in instance methods to refer to the object on which the currently executing method has been invoked.

$("#textbox").hover(
function() {
this.title = "Test";
},
fucntion() {
this.title = "OK”;
}
);

这里的this其实是一个Html 元素(textbox),textbox有text属性,所以这样写是完全没有什么问题的。
但是如果将this换成$(this)就不是那回事了,Error–报了。

Error Code:

$("#textbox").hover(
function() {
$(this).title = "Test";
},
function() {
$(this).title = "OK";
}
);

这里的$(this)是一个JQuery对象,而jQuery对象沒有title 属性,因此这样写是错误的。

JQuery拥有attr()方法可以get/set DOM对象的属性,所以正确的写法应该是这样:

正确的代码:

$("#textbox").hover(
function() {
$(this).attr(’title’, ‘Test’);
},
function() {
$(this).attr(’title’, ‘OK’);
}
);
使用JQuery的好处是它包裝了各种浏览器版本对DOM对象的操作,因此统一使用$(this)而不再用this应该是比较不错的选择。

---EOF---

看来还是不行啊我。。语言组织能力太差

效果不错的首页大banner展示

效果不错的首页大banner展示

看看这个效果如何?http://www.cssrain.cn/demo/webDemo/index.html,说老实话,我第一次看到的时候,真的以为是flash的。它的作者是不羁虫,用他的话来说是:

从事IT3年左右,专业前端工作2年左右,熟悉前端体验,Web标准(大侠很多,不敢自言精通),对jQuery的认识不到一年,jq很符合前端开发的习惯,努力学习中,也正是因为jquery认识了cssrain,这里的文章和插件都很不错,非常骄傲国内能有这样熬的交流的地方。
核心代码如下:
/*调用区域*/
$(document).ready(function(){


var pos=new Array();
pos=['585px','24px','88px','25px'];
var stepIndex=0;
var clickKey=0;
var now,next,clickIndex,startRun;

window.stepRun=function () {
now=stepIndex;
if(clickKey==1){
next = stepIndex = clickIndex;
clickKey=0;
startRun = setInterval("stepRun()",8000);
}else if (stepIndex<pos.length-1) {
next = stepIndex+1;
stepIndex++;
}else{next = stepIndex = 0;}

//alert(clickKey);


$('#bNav').animate({height:0},1000,function () {
$('#bannerSlider img').eq(now).fadeOut(2000);
$('#bannerSlider img').eq(next).fadeIn(2000);
$('#bNav li').eq(now).removeClass('now');
$('#maskBg_1').animate({left:'220px',width:0},1000)
.animate({left:pos[next],width:'264px'},1000,function (){
$('#bNav li').eq(next).addClass('now');
$('#bNav').attr('className','bNav_'+next+'').animate({height:'300px'},1000);
});
});

}

startRun = setInterval("stepRun()",8000);

$('#bNav a').click(function (){
clickIndex=$('#bNav a').index($(this));
clearInterval(startRun);
clickKey=1;
stepRun();
return false;
});



});
不过,尽量是从这里下载:http://www.cssrain.cn/demo/webDemo/webDemo.rar
JQuery -- this 和 $(this) 的区别

JQuery -- this 和 $(this) 的区别

其实这个还是很好认的啦。呵呵
this,如果是取得元素的话,则对应当前元素的对象
$(this)则是当前元素被jQuery处理的对象。

看看作者是怎么写的,来源:http://www.cnblogs.com/RuiLei/archive/2009/08/20/1550804.html。

起初以为this和$(this)就是一模子刻出来。但是我在阅读时,和coding时发现,总不是一回事。

What is "this"?

In many object-oriented programming languages, this (or self) is a keyword which can be used in instance methods to refer to the object on which the currently executing method has been invoked.

$("#textbox").hover(
function() {
this.title = "Test";
},
fucntion() {
this.title = "OK”;
}
);

这里的this其实是一个Html 元素(textbox),textbox有text属性,所以这样写是完全没有什么问题的。
但是如果将this换成$(this)就不是那回事了,Error--报了。

Error Code:
$("#textbox").hover(
function() {
$(this).title = "Test";
},
function() {
$(this).title = "OK";
}
);

这里的$(this)是一个JQuery对象,而jQuery对象沒有title 属性,因此这样写是错误的。

JQuery拥有attr()方法可以get/set DOM对象的属性,所以正确的写法应该是这样:

正确的代码:
$("#textbox").hover(
function() {
$(this).attr(’title’, ‘Test’);
},
function() {
$(this).attr(’title’, ‘OK’);
}
);

使用JQuery的好处是它包裝了各种浏览器版本对DOM对象的操作,因此统一使用$(this)而不再用this应该是比较不错的选择。

参考:http://remysharp.com/2007/04/12/jquerys-this-demystified/

--EOF--

一般来说,在代码中,尽量使用$(this),一来代码更规范一点,二来,jQuery的函数你也就可以直接调用了。如$(this).children()之类的。。

学习Jquery之旅--新手必须知道的常用方法

学习Jquery之旅--新手必须知道的常用方法

原文:http://www.cnblogs.com/gaoweipeng/archive/2009/06/09/1498333.html

Jquery中常用的函数方法总结

Jquery中为我们提供了很多有用的方法和属性,自己总结的一些常用的函数,方法。个人认为在开发中会比较常用的,仅供大家学习和参考。

事件处理

ready(fn)

代码:
$(document).ready(function(){
// Your code here...
});


作用:它可以极大地提高web应用程序的响应速度。通过使用这个方法,可以在DOM载入就绪能够读取并操纵时立即调用你所绑定的函数,而99.99%的JavaScript函数都需要在那一刻执行。

bind(type,[data],fn)

代码:
$("p").bind("click", function(){
alert( $(this).text() );
});


作用:为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数。起到事件监听的作用。

toggle(fn,fn)
代码:

$("td").toggle(
function () {
$(this).addClass("selected");
},
function () {
$(this).removeClass("selected");
}
);


作用:每次点击时切换要调用的函数。如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。挺有趣的一个函数,在动态实现某些功能的时候可能会用到。

(像click(),focus(),keydown()这样的事件这里就不提了,那些都是开发中比较常用到的。)


外观效果

addClass(class)和removeClass(class)

代码:
$(".stripe tr").mouseover(function(){
$(this).addClass("over");}).mouseout(function(){
$(this).removeClass("over");})
});
也可以写成:
$(".stripe tr").mouseover(function() { $(this).addClass("over") });
$(".stripe tr").mouseout(function() { $(this).removeClass("over") });


作用:为指定的元素添加或移除样式,从而实现动态的样式效果,上面的实例中实现鼠标移动双色表格的代码。

css(name,value)

代码:
$("p").css("color","red");


作用:很简单,就是在匹配的元素中,设置一个样式属性的值。这个个人感觉和上面的addClass(class)有点类似。

slide(),hide(),fadeIn(), fadeout(), slideUp() ,slideDown()

代码:

$("#btnShow").bind("click",function(event){ $("#divMsg").show() });
$("#btnHide").bind("click",function(evnet){ $("#divMsg").hide() });

作用:Jquery中提供的比较常用的几个动态效果的函数。还可以添加参数:show(speed,[callback])以优雅的动画显示所有匹配的元素,并在显示完成后可选地触发一个回调函数。

animate(params[,duration[,easing[,callback]]])


作用:制作动画效果用到的函数,功能非常的强大,可以连续使用此函数。

查找筛选

map(callback)
HTML 代码:
<p><b>Values: </b></p>
<form>
<input type="text" name="name" value="John"/>
<input type="text" name="password" value="password"/>
<input type="text" name="url" value="http://ejohn.org/%22/>
</form>
jQuery 代码:
$("p").append( $("input").map(function(){
return $(this).val();
}).get().join(", ") );
结果:
[ <p>John, password, http://ejohn.org/%3C/p> ]


作用:将一组元素转换成其他数组(不论是否是元素数组)你可以用这个函数来建立一个列表,不论是值、属性还是CSS样式,或者其他特别形式。这都可以用'$.map()'来方便的建立。

find(expr)

HTML 代码:

<p><span>Hello</span>, how are you?</p>
jQuery 代码:

$("p").find("span")
结果:

[ <span>Hello</span> ]


作用:搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法。

文档处理

attr(key,value)
HTML 代码:
<img/><img/>
jQuery 代码:
$("img").attr("src","test.jpg");


作用:取得或设置匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回 undefined 。在控制HTML标记上是必备的工具。


html()/html(val)
HTML 代码:
<div><p>Hello</p></div>
jQuery 代码:
$("div").html();
结果:
Hello


作用:取得或设置匹配元素的html内容,同类型的方法还有text()和val()。前者是取得所有匹配元素的内容。,后者是获得匹配元素的当前值。三者有相似的地方常用在内容的操作上。

wrap(html)
HTML 代码:
<p>Test Paragraph.</p>
jQuery 代码:
$("p").wrap("<div class='wrap'></div>");
结果:
<div class="wrap"><p>Test Paragraph.</p></div>


作用:把所有匹配的元素用其他元素的结构化标记包裹起来。
这种包装对于在文档中插入额外的结构化标记最有用,而且它不会破坏原始文档的语义品质。 可以灵活的修改我们的DOM。

empty()
HTML 代码:
<p>Hello, <span>Person</span> <a href="#">and person</a></p>
jQuery 代码:
$("p").empty();
结果:
<p></p>


作用:删除匹配的元素集合中所有的子节点。

Ajax处理

load(url,[data],[callback])
url (String) : 待装入 HTML 网页网址。
data (Map) : (可选) 发送至服务器的 key/value 数据。
callback (Callback) : (可选) 载入成功时回调函数。

代码:

$("#feeds").load("feeds.aspx", {limit: 25}, function(){
alert("The last 25 entries in the feed have been loaded");
});


作用:载入远程 HTML 文件代码并插入至 DOM 中。这也是Jquery操作Ajax最常用最有效的方法。


serialize()
HTML 代码:
<p id="results"><b>Results: </b> </p>
<form>
<select name="single">
<option>Single</option>
<option>Single2</option>
</select>
<select name="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select><br/>
<input type="checkbox" name="check" value="check1"/> check1
<input type="checkbox" name="check" value="check2"
checked="checked"/> check2
<input type="radio" name="radio" value="radio1"
checked="checked"/> radio1
<input type="radio" name="radio" value="radio2"/> radio2
</form>
jQuery 代码:
$("#results").append( "<tt>" + $("form").serialize() + "</tt>" );


作用:序列化表格内容为字符串。用于 Ajax 请求。

工具

jQuery.each(obj,callback)

代码:
$.each( [0,1,2], function(i, n){
alert( "Item #" + i + ": " + n );
});//遍历数组
$.each( { name: "John", lang: "JS" }, function(i, n){
alert( "Name: " + i + ", Value: " + n );//遍历对象
});


作用:通用例遍方法,可用于例遍对象和数组。

jQuery.makeArray(obj)
HTML 代码:
<div>First</div><div>Second</div><div>Third</div><div>Fourth</div>
jQuery 代码:
var arr = jQuery.makeArray(document.getElementsByTagName("div"));
结果:
Fourth
Third
Second
First


作用:将类数组对象转换为数组对象。使我们可以在数组和对象之间灵活的转换。

jQuery.trim(str)


作用
:这个大家应该很熟悉,就是去掉字符串起始和结尾的空格。

小结:在实际的开发中我们可能会用到其他的方法和属性,以上只是个人认为新手初学Jquery时,必须掌握的一些方法。仅供大家学习的参考。有什么不对的高手指教。