add jquery.pjax.falsandtru

This commit is contained in:
NewNotMoon
2014-07-16 09:13:55 +09:00
parent 8e9ac73126
commit b41dc8fe9c
3 changed files with 286 additions and 0 deletions

View File

@@ -164,6 +164,7 @@ All definitions files include a header with the author and editors, so at some p
* [jQuery.payment](http://needim.github.io/noty/) (by [Eric J. Smith](https://github.com/ejsmith/))
* [jQuery.pickadate](https://github.com/amsul/pickadate.js) (by [Theodore Brown](https://github.com/theodorejb))
* [jQuery.pjax](https://github.com/defunkt/jquery-pjax) (by [Junle Li](https://github.com/lijunle))
* [jQuery.pjax.falsandtru](https://github.com/falsandtru/jquery.pjax.js/) (by [NewNotMoon](https://new.not-moon.net/))
* [jQuery.pnotify](http://sciactive.github.io/pnotify/) (by [David Sichau](https://github.com/DavidSichau/))
* [jQuery.postMessage](http://benalman.com/projects/jquery-postmessage-plugin/) (by [Junle Li](https://github.com/lijunle))
* [jQuery.prettyphoto](https://github.com/scaron/prettyphoto) (by [Paul Gaske](https://github.com/pgaske))

View File

@@ -0,0 +1,96 @@
/// <reference path="jquery.pjax.d.ts" />
/// <reference path="../jquery/jquery.d.ts" />
function test_pjax() {
$.pjax();
}
function test_pjax_selector() {
$('a').pjax();
}
function test_pjax_option() {
$.pjax({
area: 'body',
load: {
head: 'base, meta, link',
css: true,
script: true
},
cache: { click: true, submit: false, popstate: true },
server: { query: null }
});
}
function test_pjax_event() {
$.pjax({
wait: 1000
});
$(document).bind('pjax.request', function () {
$('div.loading').fadeIn(100);
});
$(document).bind('pjax.render', function () {
$('div.loading').fadeOut(500);
});
}
function test_pjax_progressbar() {
$('body').append('<div class="loading" style="background:rgba(0,0,0,.2);display:none;position:fixed;bottom:0;left:0;z-index:9999;width:100%;height:5px;">\
<div style="background:#f77;position:absolute;top:0;left:0;width:0;height:3px;"></div>\
</div>');
$.pjax({
area: 'div.pjax',
callbacks: {
before: function () {
$('div.loading').children().width('');
$('div.loading').fadeIn(0);
},
ajax: {
xhr: function () {
var xhr = jQuery.ajaxSettings.xhr();
$('div.loading').children().width('5%');
if (xhr instanceof Object && 'onprogress' in xhr) {
xhr.addEventListener('progress', function (event) {
var percentage = event.total ? event.loaded / event.total : 0.4;
percentage = percentage * 90 + 5;
$('div.loading').children().width(percentage + '%');
}, false);
xhr.addEventListener('load', function (event) {
$('div.loading').children().width('95%');
}, false);
xhr.addEventListener('error', function (event) {
$('div.loading').children().css('background-color', '#00f');
}, false);
}
return xhr;
}
},
update: {
content: {
after: function () {
$('div.loading').children().width('96.25%');
}
},
css: {
after: function () {
$('div.loading').children().width('97.5%');
}
},
script: {
after: function () {
$('div.loading').children().width('98.75%');
}
},
render: {
after: function () {
$('div.loading').children().width('100%');
$('div.loading').fadeOut(50);
}
}
}
},
ajax: { timeout: 3000 },
wait: 1000
});
}

189
jquery.pjax.falsandtru/jquery.pjax.d.ts vendored Normal file
View File

@@ -0,0 +1,189 @@
// Type definitions for jquery.pjax.ts by falsandtru
// Project: https://github.com/falsandtru/jquery.pjax.js/
// Definitions by: 新ゝ月 NewNotMoon <http://new.not-moon.net/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../jquery/jquery.d.ts" />
interface PjaxSetting {
gns?: string;
ns?: string;
area?: any; // string, array, function( event, param, origUrl, destUrl )
link?: string;
filter?: any; // string, function()
form?: string;
scope?: Object;
state?: any; // any, function(event, param, origUrl, destUrl )
scrollTop?: any; // number, function( event, param, origUrl, destUrl ), null, false
scrollLeft?: any; // number, function( event, param, origUrl, destUrl ), null, false
scroll?: {
delay?: number;
record?: boolean //internal
queue?: number[] //internal
};
ajax?: JQueryAjaxSettings;
contentType?: string;
load?: {
head?: string;
css?: boolean;
script?: boolean;
execute?: boolean;
reload?: string;
ignore?: string;
sync?: boolean;
ajax?: JQueryAjaxSettings;
rewrite?: (element: any) => any;
redirect?: boolean;
};
interval?: number;
cache?: {
click?: boolean;
submit?: boolean;
popstate?: boolean;
get?: boolean;
post?: boolean;
page?: boolean;
size?: number;
mix?: number;
expires?: {
min?: number;
max?: number;
};
};
wait?: any; // number, function( event, param, origUrl, destUrl ): number
fallback?: any; // boolean, function( event, param, origUrl, destUrl ): boolean
fix?: {
location?: boolean;
history?: boolean;
scroll?: boolean;
reset?: boolean;
};
database?: boolean;
server?: {
query?: any; // string, object
header?: {
area?: boolean;
head?: boolean;
css?: boolean;
script?: boolean;
};
};
callback?: (event: JQueryEventObject, param: any) => any;
callbacks?: {
before?: (event: JQueryEventObject, param: any) => any;
after?: (event: JQueryEventObject, param: any) => any;
ajax?: {
xhr?: (event: JQueryEventObject, param: any) => any;
beforeSend?: (event: JQueryEventObject, param: any, data: any, ajaxSettings: any) => any;
dataFilter?: (event: JQueryEventObject, param: any, data: any, dataType: any) => any;
success?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
error?: (event: JQueryEventObject, param: any, XMLHttpRequest: XMLHttpRequest, textStatus: string, errorThrown: any) => any;
complete?: (event: JQueryEventObject, param: any, XMLHttpRequest: XMLHttpRequest, textStatus: string) => any;
done?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
fail?: (event: JQueryEventObject, param: any, XMLHttpRequest: XMLHttpRequest, textStatus: string, errorThrown: any) => any;
always?: (event: JQueryEventObject, param: any, XMLHttpRequest: XMLHttpRequest, textStatus: string) => any;
};
update?: {
before?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
after?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
cache?: {
before?: (event: JQueryEventObject, param: any, cache: any) => any;
after?: (event: JQueryEventObject, param: any, cache: any) => any;
};
redirect?: {
before?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
after?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
};
url?: {
before?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
after?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
};
title?: {
before?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
after?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
};
head?: {
before?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
after?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
};
content?: {
before?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
after?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
};
scroll?: {
before?: (event: JQueryEventObject, param: any) => any;
after?: (event: JQueryEventObject, param: any) => any;
};
css?: {
before?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
after?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
};
script?: {
before?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
after?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
};
render?: {
before?: (event: JQueryEventObject, param: any) => any;
after?: (event: JQueryEventObject, param: any) => any;
};
verify?: {
before?: (event: JQueryEventObject, param: any) => any;
after?: (event: JQueryEventObject, param: any) => any;
};
success?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
error?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
complete?: (event: JQueryEventObject, param: any, data: any, textStatus: string, XMLHttpRequest: XMLHttpRequest) => any;
};
param?: any;
// internal
uuid?: string;
nss?: {
name?: string;
event?: string[];
click?: string;
submit?: string;
popstate?: string;
scroll?: string;
data?: string;
class4html?: string;
requestHeader?: string;
};
origLocation?: HTMLAnchorElement;
destLocation?: HTMLAnchorElement;
retry?: boolean;
speedcheck?: boolean;
disable?: boolean;
option?: any;
};
}
interface JQueryStatic {
pjax: {
(setting?: PjaxSetting): any;
enable(): any;
disable(): any;
click(url: string, attr: { href?: string; }): any;
click(url: HTMLAnchorElement, attr: { href?: string; }): any;
click(url: JQuery, attr: { href?: string; }): any;
click(url: any, attr: { href?: string; }): any;
submit(url: string, attr: { action?: string; method?: string; }, data: any): any;
submit(url: HTMLFormElement, attr?: { action?: string; method?: string; }, data?: any): any;
submit(url: JQuery, attr?: { action?: string; method?: string; }, data?: any): any;
submit(url: any, attr?: { action?: string; method?: string; }, data?: any): any;
follow(event: JQueryEventObject, ajax: JQueryXHR, timeStamp?: number): boolean;
setCache(): any;
setCache(url: string): any;
setCache(url: string, data: string): any;
setCache(url: string, data: string, textStatus: string, XMLHttpRequest: XMLHttpRequest): any;
getCache(): any;
getCache(url: string): any;
removeCache(url: string): any;
removeCache(): any;
clearCache(): any;
};
}
interface JQuery {
pjax(setting?: PjaxSetting): any;
}