亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
快速查詢 核心 jQuery([selector,[context]]) jQuery(html,[ownerDocument]) jQuery(callback) jQuery.holdReady(hold) jQuery.readyException( error ) each(callback) size() length selector context get([index]) index([selector|element]) data([key],[value]) removeData([name|list]) jQuery.data(element,[key],[value]) queue(element,[queueName]) dequeue([queueName]) clearQueue([queueName]) jQuery.fn.extend(object) jQuery.extend(object) jQuery.noConflict([extreme]) 選擇器 #id element .class * selector1,selector2,selectorN ancestor descendant parent > child prev + next prev ~ siblings :first :not(selector) :even :odd :eq(index) :gt(index) :lang(language) :last() :lt(index) :header :animated :focus :root :target :contains(text) :empty :has(selector) :parent :hidden :visible [attribute] [attribute=value] [attribute!=value] [attribute^=value] [attribute*=value] [selector1][selector2][selectorN] :first-child :first-of-type :last-child :last-of-type :nth-child :nth-last-child(n|even|odd|formula) :nth-last-of-type(n|even|odd|formula) :nth-of-type(n|even|odd|formula) :only-child :only-of-type :input :text :password :radio :checkbox :submit :image :reset :button :file :enabled :disabled :checked :selected $.escapeSelector(selector) AJAx $.ajax(url,[settings]) $.get(url,[data],[fn],[type]) $.getJSON(url,[data],[fn]) $.getScript(url,[callback]) $.post(url,[data],[fn],[type]) ajaxComplete(callback) ajaxError(callback) ajaxSend(callback) ajaxStart(callback) ajaxStop(callback) ajaxSuccess(callback) $.ajaxPrefilter([type],fn) $.ajaxSetup([options]) load(url, [data], [callback]) serialize() serializeArray() 屬性 attr(name|properties|key,value|fn) removeAttr(name) prop(n|p|k,v|f) removeProp(name) addClass(class|fn) removeClass([class|fn]) toggleClass(class|fn[,sw]) html([val|fn]) text([val|fn]) val([val|fn|arr]) CSS css(name|pro|[,val|fn]) jQuery.cssHooks offset([coordinates]) position() scrollTop([val]) scrollLeft([val]) height([val|fn]) width([val|fn]) innerHeight() innerWidth() outerHeight([options]) outerWidth([options]) 文檔處理 append(content|fn) appendTo(content) prepend(content|fn) prependTo(content) after(content|fn) before(content|fn) insertAfter(content) insertBefore(content) wrap(html|ele|fn) unwrap() wrapall(html|ele) wrapInner(html|ele|fn) replaceWith(content|fn) replaceAll(selector) empty() remove([expr]) detach([expr]) clone([Even[,deepEven]]) 篩選 eq(index|-index) first() last() hasClass(class) filter(expr|obj|ele|fn) is(expr|obj|ele|fn) map(callback) has(expr|ele) not(expr|ele|fn) slice(start,[end]) children([expr]) closest(e|o|e) find(e|o|e) next([expr]) nextAll([expr]) nextUntil([e|e][,f]) offsetParent() parent([expr]) parents([expr]) parentsUntil([e|e][,f]) prev([expr]) prevall([expr]) prevUntil([e|e][,f]) siblings([expr]) add(e|e|h|o[,c]) andSelf() addBack() contents() end() 事件 ready(fn) on(eve,[sel],[data],fn) off(eve,[sel],[fn]) bind(type,[data],fn) one(type,[data],fn) trigger(type,[data]) triggerHandler(type, [data]) unbind(t,[d|f]) live(type,[data],fn) die(type,[fn]) delegate(s,[t],[d],fn) undelegate([s,[t],fn]) hover([over,]out) toggle([s],[e],[fn]) blur([[data],fn]) change([[data],fn]) click([[data],fn]) dblclick([[data],fn]) error([[data],fn]) focus([[data],fn]) focusin([data],fn) focusout([data],fn) keydown([[data],fn]) keypress([[data],fn]) keyup([[data],fn]) mousedown([[data],fn]) mouseenter([[data],fn]) mouseleave([[data],fn]) mousemove([[data],fn]) mouseout([[data],fn]) mouseover([[data],fn]) mouseup([[data],fn]) resize([[data],fn]) scroll([[data],fn]) select([[data],fn]) submit([[data],fn]) unload([[data],fn]) 效果 show([s,[e],[fn]]) hide([s,[e],[fn]]) toggle([s],[e],[fn]) slideDown([s],[e],[fn]) slideUp([s,[e],[fn]]) slideToggle([s],[e],[fn]) fadeIn([s],[e],[fn]) fadeOut([s],[e],[fn]) fadeTo([[s],o,[e],[fn]]) fadeToggle([s,[e],[fn]]) animate(p,[s],[e],[fn]) stop([c],[j]) delay(d,[q]) finish([queue]) jQuery.fx.off jQuery.fx.interval 工具 $.support $.browser $.browser.version $.boxModel $.each(object,[callback]) $.extend([d],tgt,obj1,[objN]) $.grep(array,fn,[invert]) $.sub() $.when(deferreds) $.makearray(obj) $.map(arr|obj,callback) $.inArray(val,arr,[from]) $.toArray() $.merge(first,second) $.unique(array) $.uniqueSort(array) $.parseJSON(json) $.parseXML(data) $.noop $.proxy(function,context) $.contains(c,c) $.type(obj) $.isArray(obj) $.isFunction(obj) $.isEmptyObject(obj) $.isPlainObject(obj) $.isWindow(obj) $.isNumeric(value) $.trim(str) $.param(obj,[traditional]) $.error(message) $.fn.jquery 事件對象 eve.currentTarget eve.data eve.delegateTarget eve.isDefaultPrevented() eve.isImmediatePropag...() eve.isPropagationStopped() eve.namespace eve.pageX eve.pageY eve.preventDefault() eve.relatedTarget eve.result eve.stopImmediatePro...() eve.stopPropagation() eve.target eve.timeStamp eve.type eve.which 延遲對象 def.done(d,[d]) def.fail(failCallbacks) def.isRejected() def.isResolved() def.reject(args) def.rejectWith(c,[a]) def.resolve(args) def.resolveWith(c,[a]) def.then(d[,f][,p]) def.promise([ty],[ta]) def.pipe([d],[f],[p]) def.always(al,[al]) def.notify(args) def.notifyWith(c,[a]) def.progress(proCal) def.state() 回調(diào)函數(shù) cal.add(callbacks) cal.disable() cal.empty() cal.fire(arguments) cal.fired() cal.fireWith([c] [,a]) cal.has(callback) cal.lock() cal.locked() cal.remove(callbacks) $.callbacks(flags) 正則表達(dá)式
characters

返回值:jQueryjQuery.callbacks(flags)

概述

一個多用途的回調(diào)列表對象,提供了強(qiáng)大的的方式來管理回調(diào)函數(shù)列表。

$.Callbacks()的內(nèi)部提供了jQuery的$.ajax() 和 $.Deferred() 基本功能組件。它可以用來作為類似基礎(chǔ)定義的新組件的功能。

$.Callbacks() 支持的方法,包括 callbacks.add(),callbacks.remove(), callbacks.fire() and callbacks.disable().

參數(shù)

flagsV1.7

一個用空格標(biāo)記分隔的標(biāo)志可選列表,用來改變回調(diào)列表中的行為

示例

入門描述:

以下是兩個樣品的方法命名fn1 and fn2:

jQuery 代碼:
function fn1( value ){
    console.log( value );
}

function fn2( value ){
    fn1("fn2 says:" + value);
    return false;
}

這些可以添加為回調(diào)函數(shù)作為一個$.Callbacks的列表,并調(diào)用如下:

var callbacks = $.Callbacks();
callbacks.add( fn1 );
callbacks.fire( "foo!" ); // outputs: foo!

callbacks.add( fn2 );
callbacks.fire( "bar!" ); // outputs: bar!, fn2 says: bar!

這樣做的結(jié)果是,它使構(gòu)造復(fù)雜的回調(diào)列表變得簡單,輸入值可以通過盡可能多的函數(shù)根據(jù)需要輕松使用。

用于以上的兩個具體的方法: .add() 和 .fire() .add() 支持添加新的回調(diào)回調(diào)列表, 而.fire() 提供了一種用于處理在同一列表中的回調(diào)方法的途徑.

另一種方法由$.Callbacks 的remove(),用于從回調(diào)列表中刪除一個特定的回調(diào)。下面是.remove() 使用的一個例子:

var callbacks = $.Callbacks();
callbacks.add( fn1 );
callbacks.fire( "foo!" ); // outputs: foo!

callbacks.add( fn2 );
callbacks.fire( "bar!" ); // outputs: bar!, fn2 says: bar!

callbacks.remove(fn2);
callbacks.fire( "foobar" ); 

// only outputs foobar, as fn2 has been removed.

支持的 Flags描述:

這個 flags 參數(shù)是$.Callbacks()的一個可選參數(shù), 結(jié)構(gòu)為一個用空格標(biāo)記分隔的標(biāo)志可選列表,用來改變回調(diào)列表中的行為 (比如. $.Callbacks( 'unique stopOnFalse' )).

 

可用的 flags:

  • once: 確保這個回調(diào)列表只執(zhí)行一次(像一個遞延 Deferred).

  • memory: 保持以前的值和將添加到這個列表的后面的最新的值立即執(zhí)行調(diào)用任何回調(diào) (像一個遞延 Deferred).

  • unique: 確保一次只能添加一個回調(diào)(所以有沒有在列表中的重復(fù)).

  • stopOnFalse: 當(dāng)一個回調(diào)返回false 時中斷調(diào)用

默認(rèn)情況下,回調(diào)列表將像事件的回調(diào)列表中可以多次觸發(fā)。

如何在理想情況下應(yīng)該使用的flags的例子,見下文:

 

$.Callbacks( 'once' ):

var callbacks = $.Callbacks( "once" );
callbacks.add( fn1 );
callbacks.fire( "foo" );
callbacks.add( fn2 );
callbacks.fire( "bar" );
callbacks.remove( fn2 );
callbacks.fire( "foobar" );

/*
output: 
foo
*/

 

$.Callbacks( 'memory' ):

var callbacks = $.Callbacks( "memory" );
callbacks.add( fn1 );
callbacks.fire( "foo" );
callbacks.add( fn2 );
callbacks.fire( "bar" );
callbacks.remove( fn2 );
callbacks.fire( "foobar" );

/*
output:
foo
fn2 says:foo
bar
fn2 says:bar
foobar
*/

 

$.Callbacks( 'unique' ):

var callbacks = $.Callbacks( "unique" );
callbacks.add( fn1 );
callbacks.fire( "foo" );
callbacks.add( fn1 ); // repeat addition
callbacks.add( fn2 );
callbacks.fire( "bar" );
callbacks.remove( fn2 );
callbacks.fire( "foobar" );

/*
output:
foo
bar
fn2 says:bar
foobar
*//code>

 

$.Callbacks( 'stopOnFalse' ):

function fn1( value ){
    console.log( value );
    return false;
}

function fn2( value ){
    fn1("fn2 says:" + value);
    return false;
}

var callbacks = $.Callbacks( "stopOnFalse");
callbacks.add( fn1 );
callbacks.fire( "foo" );
callbacks.add( fn2 );
callbacks.fire( "bar" );
callbacks.remove( fn2 );
callbacks.fire( "foobar" );

/*
output:
foo
bar
foobar
*/

因?yàn)?.Callbacks() 支持一個列表的flags而不僅僅是一個,設(shè)置幾個flags,有一個累積效應(yīng),類似“&&”。這意味著它可能結(jié)合創(chuàng)建回調(diào)名單,unique 和確保如果名單已經(jīng)觸發(fā),將有更多的回調(diào)調(diào)用最新的觸發(fā)值 (i.e.$.Callbacks("unique memory")).

 

$.Callbacks( 'unique memory' ):

function fn1( value ){
    console.log( value );
    return false;
}

function fn2( value ){
    fn1("fn2 says:" + value);
    return false;
}
    
var callbacks = $.Callbacks( "unique memory" );
callbacks.add( fn1 );
callbacks.fire( "foo" );
callbacks.add( fn1 ); // repeat addition
callbacks.add( fn2 );
callbacks.fire( "bar" );
callbacks.add( fn2 );
callbacks.fire( "baz" );
callbacks.remove( fn2 );
callbacks.fire( "foobar" );

/*
output:
foo
fn2 says:foo
bar
fn2 says:bar
baz
fn2 says:baz
foobar
*/

Flag結(jié)合體是使用的$.Callbacks()內(nèi)部的.done() 和 .fail()一個遞延容器-它們都使用 $.Callbacks('memory once').

$.Callbacks 方法也可以被分離, 為方便起見應(yīng)該有一個需要定義簡寫版本:

var callbacks = $.Callbacks(),
    add = callbacks.add,
    remove = callbacks.remove,
    fire = callbacks.fire;

add( fn1 );
fire( "hello world");
remove( fn1 );

$.Callbacks, $.Deferred and Pub/Sub

pub / sub( Observer模式)背后的一般思路 是促進(jìn)應(yīng)用程序的松散耦合。而比對其他對象的方法調(diào)用的單個對象,一個對象,而不是另一個對象的一個特定的任務(wù)或活動,并通知當(dāng)它發(fā)生。觀察家也被稱為訂閱者,我們指的出版商(或主體)觀察對象。出版商事件發(fā)生時通知用戶

作為一個組件$.Callbacks()創(chuàng)造能力,它可以實(shí)現(xiàn)一個pub / sub系統(tǒng)只使用回調(diào)列表。使用$.Callbacks作為主題隊(duì)列,發(fā)布和訂閱的主題系統(tǒng)可以實(shí)現(xiàn)如下:

var topics = {};

jQuery.Topic = function( id ) {
    var callbacks,
        method,
        topic = id && topics[ id ];
    if ( !topic ) {
        callbacks = jQuery.Callbacks();
        topic = {
            publish: callbacks.fire,
            subscribe: callbacks.add,
            unsubscribe: callbacks.remove
        };
        if ( id ) {
            topics[ id ] = topic;
        }
    }
    return topic;
};

然后,可以很容易的使用這部分應(yīng)用程序的發(fā)布和訂閱感興趣的事件:

// Subscribers
$.Topic( "mailArrived" ).subscribe( fn1 );
$.Topic( "mailArrived" ).subscribe( fn2 );
$.Topic( "mailSent" ).subscribe( fn1 );

// Publisher
$.Topic( "mailArrived" ).publish( "hello world!" );
$.Topic( "mailSent" ).publish( "woo! mail!" );

// Here, "hello world!" gets pushed to fn1 and fn2
// when the "mailArrived" notification is published
// with "woo! mail!" also being pushed to fn1 when
// the "mailSent" notification is published. 

/*
output:
hello world!
fn2 says: hello world!
woo! mail!
*/

雖然這是有用的,可以采取進(jìn)一步的實(shí)施。使用$.Deferreds,這是可能的,以確保發(fā)表者只為用戶發(fā)布一次特別的任務(wù)已經(jīng)完成(解決)通知。這可能是如何在實(shí)踐中使用的一些進(jìn)一步的評論,請參見下面的代碼示例:

// subscribe to the mailArrived notification
$.Topic( "mailArrived" ).subscribe( fn1 );

// create a new instance of Deferreds
var dfd = $.Deferred();

// define a new topic (without directly publishing)
var topic = $.Topic( "mailArrived" );

// when the deferred has been resolved, publish a 
// notification to subscribers
dfd.done( topic.publish );

// Here the Deferred is being resolved with a message
// that will be passed back to subscribers. It's possible to
// easily integrate this into a more complex routine
// (eg. waiting on an ajax call to complete) so that
// messages are only published once the task has actually
// finished.
dfd.resolve( "its been published!" );
   
       


Previous article: Next article: