venne / nette-ajax
AJAX 通用脚本,支持代码片段、重定向等。
Suggests
This package is auto-updated.
Last update: 2024-08-29 03:29:24 UTC
README
AJAX 通用脚本,支持代码片段、重定向等。
许可协议
MIT
依赖项
jQuery 1.7
安装
- 从 Github 获取源代码。
- 将
nette.ajax.js
拷贝到您的 JavaScript 文件目录。 - 在模板中链接文件(通常在
app/@layout.latte
中,jQuery 之后)。 - 放置初始化脚本的位置
$(function () { $.nette.init(); });
使用方法
默认情况下,所有带有 CSS 类 ajax
的链接和表单都将立即 AJAX 化。行为可以在 init
扩展的配置中更改。由 var init = $.nette.ext('init');
调用返回的对象具有以下属性
AJAX 化绑定到 click
(submit
)事件在 nette
命名空间中。可以通过以下代码取消特定链接的 AJAX 化(而其他回调将保持不变)
$('a.no-ajax').off('click.nette');
或者更简单一点
$('a.no-ajax').netteAjaxOff();
扩展
AJAX 化封装标准的 $.ajax()
调用并扩展它,使其具有几个可以通过自定义回调挂钩的事件。一组相关的回调称为 扩展。代码片段处理、通过 Escape... 取消正在运行请求的能力等功能都是通过扩展的形式实现的。扩展的注册方式如下
$.nette.ext('name', { event1: function () { }, event2: ... }, { // ... shared context (this) of all callbacks });
第一个参数是名称。它是可选的。
第二个参数应该是包含回调的哈希,其键与事件的名称相对应。这些事件是可用的
扩展可以禁用
$.nette.ext('name', null);
扩展可以配置。可以通过以下方式获取其上下文
var context = $.nette.ext('name');
默认扩展
有用的技巧
所有这些特殊功能都假定所有默认扩展都已开启。
data-ajax-off
带有自定义数据属性 data-ajax-off
的链接或其他 AJAX 化元素可以关闭特定扩展的 AJAX 请求。
<a n:href="do!" class="ajax" data-ajax-off="snippets">
您也可以在 $.nette.ajax()
中使用它。如下所示
$.nette.ajax({ url: ..., off: ['snippets'] });
data-ajax-pass
(在 validation
扩展中)
AJAX 化元素确保调用 e.preventDefault()
。如果需要更多回调,则可以使用此属性阻止它。
data-ajax-append
(在 snippets
扩展中)
带有此属性的新代码片段内容不会替换旧内容,而是将其附加到它上面。
data-ajax-validate
(在 validation
扩展中)
点击链接或提交表单会在各种条件下进行验证。您可以切换其中任何一个
<a n:href="do!" class="ajax" data-ajax-validate='{"keys":false}'>
就像 data-ajax-off
一样,您可以直接将其传递到 $.nette.ajax()
。
$.nette.ajax({ url: ..., validate: { keys: false } });
这意味着使用 Ctrl 点击链接不会打开新标签页,而是将请求 AJAX 化。
依赖其他扩展
在事件回调中,您可以通过调用 this.ext()
获取其他扩展的上下文。如果将 true
作为第二个参数,则脚本将失败,如果该扩展不可用。
$.nette.ext({ success: function (payload) { var snippets = this.ext('snippets', true); ... } });