06.js 4.4 KB

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