06.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. $(document).ready(function () {
  2. 'use strict';
  3. $('#letter-a a').click(function (event) {
  4. event.preventDefault();
  5. $.ajax({
  6. url: 'a.html',
  7. success: function (data) {
  8. $('#dictionary').html(data);
  9. }
  10. });
  11. });
  12. $('#letter-b a').click(function (event) {
  13. event.preventDefault();
  14. $.getJSON('b.json', function (data) {
  15. var html = '';
  16. $.each(data, function (entryIndex, entry) {
  17. html += '<div class="entry">';
  18. html += '<h3 class="term">' + entry.term + '</h3>';
  19. html += '<div class="part">' + entry.part + '</div>';
  20. html += '<div class="definition">';
  21. html += entry.definition;
  22. if (entry.quote) {
  23. html += '<div class="quote">';
  24. $.each(entry.quote, function (lineIndex, line) {
  25. html += '<div class="quote-line">' + line + '</div>';
  26. });
  27. if (entry.author) {
  28. html += '<div class="quote-author">' + entry.author + '</div>';
  29. }
  30. html += '</div>';
  31. }
  32. html += '</div>';
  33. html += '</div>';
  34. });
  35. $('#dictionary').html(html);
  36. });
  37. });
  38. $('#letter-c a').click(function (event) {
  39. event.preventDefault();
  40. $.getScript('c.js');
  41. });
  42. $('#letter-d a').click(function (event) {
  43. event.preventDefault();
  44. $.get('d.xml', function (data) {
  45. $('#dictionary').empty();
  46. $(data).find('entry').each(function() {
  47. var $entry = $(this);
  48. var html = '<div class="entry">';
  49. html += '<h3 class="term">' + $entry.attr('term');
  50. html += '</h3>';
  51. html += '<div class="part">' + $entry.attr('part');
  52. html += '</div>';
  53. html += '<div class="definition">';
  54. html += $entry.find('definition').text();
  55. var $quote = $entry.find('quote');
  56. if ($quote.length) {
  57. html += '<div class="quote">';
  58. $quote.find('line').each(function () {
  59. html += '<div class="quote-line">';
  60. html += $(this).text() + '</div>';
  61. });
  62. if ($quote.attr('author')) {
  63. html += '<div class="quote-author">';
  64. html += $quote.attr('author') + '</div>';
  65. }
  66. html += '</div>';
  67. }
  68. html += '</div>';
  69. html += '</div>';
  70. $('#dictionary').append($(html));
  71. });
  72. });
  73. });
  74. $('#letter-e a').click(function (event) {
  75. event.preventDefault();
  76. var requestData = { term: $(this).text() };
  77. $.get('e.php', requestData, function(data) {
  78. $('#dictionary').html(data);
  79. }).fail(function (jqXHR) {
  80. $('#dictionary')
  81. .html('Sorry, but an error occurred: ' + jqXHR.status)
  82. .append(jqXHR.responseText);
  83. });
  84. });
  85. $('#letter-f form').submit(function (event) {
  86. event.preventDefault();
  87. var formValues = $(this).serialize();
  88. $.get('f.php', formValues, function(data) {
  89. $('#dictionary').html(data);
  90. });
  91. });
  92. var url = 'http://examples.learningjquery.com/jsonp/g.php';
  93. $('#letter-g a').click(function (event) {
  94. event.preventDefault();
  95. $.getJSON(url + '?callback=?', function (data) {
  96. var html = '';
  97. $.each(data, function (entryIndex, entry) {
  98. html += '<div class="entry">';
  99. html += '<h3 class="term">' + entry.term + '</h3>';
  100. html += '<div class="part">' + entry.part + '</div>';
  101. html += '<div class="definition">';
  102. html += entry.definition;
  103. if (entry.quote) {
  104. html += '<div class="quote">';
  105. $.each(entry.quote, function (lineIndex, line) {
  106. html += '<div class="quote-line">' + line + '</div>';
  107. });
  108. if (entry.author) {
  109. html += '<div class="quote-author">' + entry.author + '</div>';
  110. }
  111. html += '</div>';
  112. }
  113. html += '</div>';
  114. html += '</div>';
  115. });
  116. $('#dictionary').html(html);
  117. });
  118. });
  119. var $loading = $('<div id="loading">Loading...</div>')
  120. .insertBefore('#dictionary');
  121. $(document).ajaxStart(function () {
  122. $loading.show();
  123. }).ajaxStop(function () {
  124. $loading.hide();
  125. });
  126. $('body').on('click', 'h3.term', function () {
  127. $(this).siblings('.definition').slideToggle();
  128. });
  129. });