StartKit.Ajax

来源:互联网 发布:网络打假赚钱 编辑:程序博客网 时间:2024/06/05 21:15
 
  1. //ajax应用
  2. //天哪,php我看不懂。算了。找个asp.net的例子吧。
  3. /*
  4.     用jQuery生成一个DIV容器,ID是"rating".
  5.     代码生成了5个链接,并将它们追加到id为"rating"容器中,当其中一个链接被点击时,
  6.     该链接标明的分数就会以rating参数形式发送到rate.php,然后,
  7.     结果将以XML形式会从服务器端传回来,添加到容器中,替代这些链接。
  8. */
  9. $(document).ready(function() {
  10.     // generate markup
  11.     var ratingMarkup = ["Please rate: "];
  12.     for(var i=1; i <= 5; i++) {
  13.         ratingMarkup[ratingMarkup.length] = "<a href='#'>" + i + "</a> ";
  14.     }
  15.     // add markup to container and applier click handlers to anchors
  16.     $("#rating").append( ratingMarkup.join('') ).find("a").click(function(e) {
  17.         e.preventDefault();
  18.         // send requests
  19.         $.post("rate.php", {rating: $(this).html()}, function(xml) {
  20.             // format result
  21.             var result = [
  22.                 "Thanks for rating, current average: ",
  23.                 $("average", xml).text(),
  24.                 ", number of votes: ",
  25.                 $("count", xml).text()
  26.             ];
  27.             // output result
  28.             $("#rating").html(result.join(''));
  29.         } );
  30.     });
  31. });
  32. /*
  33. 一个在使用AJAX载入内容时经常发生的问题是:当载入一个事件句柄到一个HTML文档时,
  34. 还需要在载入内容上应用这些事件,你不得不在内容加载完成后应用这些事件句柄,
  35. 为了防止代码重复执行,你可能用到
  36. */
  37. // lets use the shortcut
  38. $(function() {
  39.     var addClickHandlers = function() {
  40.         $("a.clickMeToLoadContent").click(function() {
  41.             $("#target").load(this.href, addClickHandlers);
  42.         });
  43.     };
  44.     addClickHandlers();
  45. });
  46. /*
  47. 现在,addClickHandlers只在DOM载入完成后执行一次,这是在用户每次点击具有clickMeToLoadContent 这个样式的链接并且内容加载完成后.
  48. 请注意addClickHandlers函数是作为一个局部变量定义的,而不是全局变量(如:function addClickHandlers() {...}),
  49. 这样做是为了防止与其他的全局变量或者函数相冲突.
  50. 另一个常见的问题是关于回调(callback)的参数。你可以通过一个额外的参数指定回调的方法,简单的办法是将这个回调方法包含在一个其它的function中:
  51. */
  52. $(function(){
  53.     // get some data
  54.     var foobar = ...;
  55.     // specify handler, it needs data as a paramter
  56.     var handler = function(data) {
  57.       ...
  58.     };
  59.     // add click handler and pass foobar!
  60.     $('a').click( function(event) { handler(foobar); } );
  61.     // if you need the context of the original handler, use apply:
  62.     $('a').click( function(event) { handler.apply(this, [foobar]); } );
  63. });