2009年4月14日,

简易的AJAX链接 - 无插件需要!

发布者:马赫布卜在: AJAX

所以AJAX AJAX和AJAX,这是我们做广泛的这些天。 这样可以节省时间,增加了动力,让你感觉一种应用软件的使用感觉。 但还有许多许多图书馆使用AJAX的方法。 但你可以看到这个网站是为jQuery,我们来看看一些基本或者先进的AJAX用法。

你是什​​么,我们需要吗?

jQuery库(当然)
一个微小的PHP脚本

让我们开始交谈。 在jQuery中,基本上有6种方法做AJAX操作。 这些都是

  1. AJAX(选项)
  2. 美元。(URL,数据,回调)
  3. 美元。getJSON(URL,数据,回调)
  4. $。getScript加入脚本(URL,回调)
  5. 负载(URL,数据,回调)
  6. 美元(URL,数据,回调后,

除1号外,所有其他方法使用。AJAX内部。 因此,这意味着美元。阿贾克斯()是我们的母亲jQuery的AJAX操作功能。 让我们来看看如何为阿贾克斯()看起来像

  $。AJAX({
     ,类型:“POST”
     ,网址:some.php“,
     ,资料:“名称=彼得位置=纽约”,
     ( msg ) {成功 函数 (MSG){
         "Server Response " + msg ) ; 警报 (“服务器响应”+味精);
     }
 }); 

这是相当它。 类型参数以“GET”或“POST”,这意味着您可以发送的AJAX requestion作为POST或GET(我宁愿永远发表)。 其余的参数都相当自我解释,如果你再看看代码。

现在,我们要做出一个小的AJAX脚本读取超链接标记链接(<a>)和加载文档中的一些div元素的请求。

首先,我们采取正常的PHP文件看起来像这样的HTML

  DOCTYPE HTML PUBLIC“ -  / / W3C / / DTD XHTML 1.0 Strict标准/ / EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
 <HEAD>
	 <TITLE>阿贾克斯链接测试</ TITLE>
	 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"
	 <script type="text/javascript" src="jquery-1.2.6.min.js"> </ SCRIPT>	
 </ HEAD>
 <BODY>
 </ BODY> </ HTML> 


现在让我们添加一些链接到文件。 为更好的菜单样外观,我们将使用一个UL>李和链接。 这看起来像这样

  <ul id="nav">
	 <LI> <a class="ajax_link" rel="div1" href="response.php?user=john">负荷在1区</ A> </ LI>
	 <LI> <a class="ajax_link" rel="div2" href="response.php?user=nash">负荷在2节</ A> </ LI>
	 <LI> <a class="ajax_link" rel="div3" href="response.php?user=stella">息3负载</ A> </ LI>
	 <LI> <a class="ajax_link" rel="div4" href="response.php?user=jason">负载节4 </ A> </ LI>
 </ UL> 

正如你可以看到,我们已经把内部的无序列表中的对象的列表元素的链接。 细看采取的<a>标签的属性。 我们有HREF,阶级和rel属性比正常链接看起来没有什么不同。 如果你看到,我们已经rel属性一些div的名称,即DIV1,DIV2 ...... 依此类推。 这意味着,我们希望将这些div加载的href响应。 如何做到这一点? 让我们添加这些div的第一

  <SPAN>的DIV -1 </ SPAN>
 <div id="div1" class="content_loader"> </ DIV>
 <SPAN>格-2 </ SPAN>
 <div id="div2" class="content_loader"> </ DIV>
 <SPAN>的DIV -3 </ SPAN>
 <div id="div3" class="content_loader"> </ DIV>
 <SPAN>格-4 </ SPAN>
 <div id="div4" class="content_loader"> </ DIV> 

和真实的一部分,现在 - 我们给出的链接类“ajax_link”。 我们将动态添加AJAX行动只有有类名称称为“ajax_link”的链接。 地狱,我们没有一个页面的所有链接,有AJAX的行动,我们呢?

因此,文件的负载,我们应该这样做。

  . ready ( function ( ) { $(文件)。 就绪  函数 (){
         ) . click ( function ( ) { $(“a.ajax_link”)。 点击  函数 (){
             this ) ;美元current_link = $(  );
             $。AJAX({
                 , “邮报”,类型
                 ( "href" ) ,网址美元current_link attr(“HREF”),
                 ( e ) {成功 函数 (E){
                     + $current_link. attr ( "rel" ) ) . html ( e ) ; $(“#”+ $ current_link attr(“REL”))HTML(E);
                 }
             });
             ; 返回 false;
         });
     }); 

让我解释的脚本位。 的document.ready事件是在页面加载时触发的事件。 然后我们分配上有类“ajax_link”链接的点击事件的某种代码。 这样做current_link = $(本);允许当前的链接对象是在回调函数。 我们有

$(“#”+ $ current_link.attr(“REL”))。HTML(E)

这意味着(“div_id”)HTML(server_response),我们已经设置了动态URL $ ajax功能的URL参数:$ current_link.attr(的“href”)。 所以,现在所有这些意味着“所有这些链接有类”ajax_link“ - 添加一个Click事件处理程序 - 然后执行AJAX请求的链接HREF poperty和响应加载到一个div的id匹配的”相对“的属性链接“。 并返回false阻止像普通链接的链接工作 ;)

想看到它的行动呢? 这里。

,你可以下载源

在这个小教程的下一节,我们将使用同样的事情,但有一个舒适的点点。

应用更简单的方法

一切仍然几乎相同。 我们只需要改变这里的Ajax方法。 因此,而不是写整个美元。AJAX块,我们可以实现以下同样的事情。

  . ready ( function ( ) { $(文件)。 就绪  函数 (){
 ) . click ( function ( ) { $(“a.ajax_link”)。 点击  函数 (){
 + $ ( this ) . attr ( "rel" ) ) . load ( $ ( this ) . attr ( "href" ) ) ; $(“#”+ $(   attr(“REL”))负载 ($(   attr(“HREF”));
 ; 返回 false;
 });
 }); 

这是少了很多复杂的现在,正确? load方法加载的元素,它连接到内的Ajax内容。 如果$(“#somediv_id”)。负荷(“mypage.php”),它会尝试加载在IT mypage.php的内容。 很简单,是吧? 但我建议你习惯的主要方法(第一部分)。

在zip文件中还有另一个文件ajax2.php这表明此methos有相同的结果。

因此,AJAX并不难,因为它听起来,正确吗? 当你成为AJAX操作非常流畅,你会创造魔法。

感谢读BTW。

标签:

没有回应“简易AJAX链接 - 无插件需要!”

评论表单


翻译

English flagItalian flagKorean flagChinese (Simplified) flagChinese (Traditional) flagPortuguese flagGerman flagFrench flagSpanish flagJapanese flagArabic flagRussian flagGreek flagDutch flagBulgarian flagCzech flagCroatian flagDanish flagFinnish flagHindi flagPolish flagRomanian flagSwedish flagNorwegian flagCatalan flagFilipino flagHebrew flagIndonesian flagLatvian flagLithuanian flagSerbian flagSlovak flagSlovenian flagUkrainian flagVietnamese flagAlbanian flagEstonian flagGalician flagMaltese flagThai flagTurkish flagHungarian flag

标签