你最喜欢的jQuery功能是什么?

时间:2009-05-21 20:56:55

标签: jquery

前几天我刚刚接受了jQuery的顿悟,但仍然觉得我没有使用大量的力量。

那就是说,jQuery最喜欢的功能是什么,可以节省您的时间和/或使您的客户端应用程序更酷或更强大?

16 个答案:

答案 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的最大特点是它是从各个角度设计的,并考虑到了简单性。最简单的答案通常是最好的答案。