前几天我刚刚接受了jQuery的顿悟,但仍然觉得我没有使用大量的力量。
那就是说,jQuery最喜欢的功能是什么,可以节省您的时间和/或使您的客户端应用程序更酷或更强大?
答案 0 :(得分:27)
我最喜欢的jQuery功能是它几乎在一夜之间将JavaScript从讨厌的语言转变为性感语言。
答案 1 :(得分:17)
创建HTML元素并保留参考:
var newDiv = $('<div></div>');
newDiv.attr("id","myNewDiv").appendTo("body");
//Now whenever I want to append the new div I created,
//I can just reference it from the 'newDiv' variable
检查元素是否存在:
if ($("#someDiv").length) {
//it exists...
}
编写自己的选择器:
$.extend($.expr[':'], {
over100pixels: function(a) {
return $(a).height() > 100;
}
});
$('.box:over100pixels').click(function() {
alert('The element you clicked is over 100 pixels high');
});
答案 2 :(得分:12)
不必担心(尽可能多)不同浏览器之间的兼容性
答案 3 :(得分:8)
Selectors,并且链接。
答案 4 :(得分:7)
链接!巨大的jQuery链是惊人的。有时我无法阻止。感觉就像在一行中做所有事情(你想要,不要否认它)。
this.lasso = $('<div/>')
.css({ position: 'absolute', overflow: 'hidden' })
.addClass('ui-crop-lasso')
.hide()
.appendTo('body')
.resizable({
handles: 'all',
start: setLasso,
stop: setLasso,
resize: setLasso,
minHeight: 50,
minWidth: 50
})
.draggable({
containment: el,
cursorAt: 'move',
drag: setLasso
});
尝试一下,你马上就会上瘾。
答案 5 :(得分:6)
插件系统令人难以置信。从技术上讲,你可以成为一个完整的JQuery新手,并且仍然可以通过插件的应用程序充分利用它的大部分功能(如果不是全部的话)。这使得艺术家和非程序员非常喜欢添加工具提示,模态对话框,灯箱,下拉菜单等。
答案 6 :(得分:4)
我喜欢jQuery从HTML中删除事件处理程序以将内容与行为分开的方面。而不是写
<p class="active" onclick="myFunction()">foo</p>
在网页上多次,我可以写这个:
<p class="active">foo</p>
并在我的脚本标签中写一次:
$(".active").click(function(){ ... });
为什么我更喜欢这个?因为jQuery将内容与功能分开,就像CSS将内容与样式分开一样。正如Jan Zich和其他人所提到的,jQuery使得很多功能很容易为任何浏览器编程,所以例如当你想模拟在用户的页面上显示/隐藏div的标签时,动画变得轻而易举。
答案 7 :(得分:3)
jQuery对象的工作方式,无论是否为none,一个或多个DOM元素。
此外,事件处理摇滚。能够在点击事件上返回false,例如,摇滚。
答案 8 :(得分:2)
作为jQuery的新手,它必须是jQuery UI插件,以及人们设计的主题。 ThemeRoller可让您快速调整主题,并在Firefox中显示应用程序时播放“假设”场景。通过使用标签,手风琴滑块,日期选择器和警报,我可以在不知道jQuery的情况下从一两天开始大大改进Web应用程序。
更有经验的网络开发人员会喜欢jQuery的“不引人注目的JavaScript”理念,严格利用XHTML和CSS,选择器和链接。
答案 9 :(得分:2)
大多数需要大量跨浏览器测试和调整的东西,我不可能把自己写成可靠的,并且像jQuery社区那样广泛地进行测试。这包括:
(文档)$。就绪(...)。看看这个函数的实现。有很多if-else语句检查各种浏览器功能。
位置和维度方法:$(...)。offset(),$(...)。position(),$(...)。width(),$(...) .innerWidth()等。这里也是同样的故事。此外,它们可靠地工作(或者我更可靠地假设我能够实现自己)用于特殊情况,例如窗口和文档。
$(...)。动画()。能够根据任何(合理的)CSS样式为元素设置动画。 还有动画链接和$(...)。stop()。非常流利的API。
事件处理程序。这是每个JavaScript库都有的东西,并不是任何人都无法实现的东西,但它很高兴。
还有一些不太受欢迎的功能。其中一个是函数链,它似乎是半官方的jQuery编程风格。第一眼看上去可能令人印象深刻,但总的来说,使用变量和单独的语句并不是你不能做的任何事情,最后,在我看来,它会导致代码不太可读。
我喜欢的另一个小问题是使用闭包和深度嵌套的匿名函数的渴望。一周后阅读此类代码可能更难。可能不会立即明显某些变量的来源和功能范围。尝试准备一些更精细的jQuery源来看看我的意思。
即使jQuery的卖点之一是选择器,我发现我并不经常需要它们,如果我需要它,我通常会接受基本的。
最后,jQuery DOM操作有一些有用的实用程序,但总的来说,我认为可以用更多(尽管是单调乏味的)代码实现相同的功能。我知道我很可能过于简单化,但似乎并不存在一些严重的跨浏览器问题。
答案 10 :(得分:2)
选择器中的正则表达式(因为我使用ASP.Net并且控件具有荒谬的渲染ID。)
要在jQuery中获取此信息:
<asp:TextBox ID="txtTest" runat="server" />
我这样做:
$("input[id$='txtTest']")
它让我改变了我在网站上做客户端的观点。
答案 11 :(得分:1)
不完全是一个功能,但已经编写的插件和社区信息的数量如何使用jQuery绝对是一个奖励。否则,选择器和插件系统一起使用。
答案 12 :(得分:1)
选择器,支持 CSS 1-3 和 XPath 以及您自己的自定义选择器!
// "odd" numbered rows in a table with class "orders"
jQuery('table.orders tr:odd')
// All external links (links that start with http://)
jQuery('a[@href^="http://"]')
答案 13 :(得分:1)
插件系统:
((function($){
$.fn.plugin = function(){
return this.each(function(){
//code here
});
}
})(jQuery)
链接:
$('.parent').children().remove().end().css('background-color', 'red');
跨各种功能的跨浏览器兼容性,例如。 Ajax的
$.GET('url', {data: 'here'}, function(data){ /* callback */ });
答案 14 :(得分:1)
animate funciton中的相对值:
$('div.class:hover').animate({ height: '+=10', width: '+=10', opacity: '-=.5' })
答案 15 :(得分:0)
我喜欢这样一个事实,它在某种程度上同样对待新手和专家。但是,如果你知道自己在做什么,那么你可以在所有方面让应用程序大放异彩。诸如延迟加载,代码分离和模板之类的事情都可以通过jQuery完成。它被设计为DOM工具,但可以很容易地适应命名空间并充当全栈js框架。
简而言之,我认为jQuery的最大特点是它是从各个角度设计的,并考虑到了简单性。最简单的答案通常是最好的答案。