06.js 4.1 KB

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