alert.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. define(['$', 'template'], function ($, template) {
  2. return {
  3. body: '',
  4. init: function (pageData, dtd) {
  5. var $view = this;
  6. $.newTouch('button', function (event) {
  7. event.stopPropagation();
  8. event.preventDefault();
  9. var buttonIndex = $(this).data('button-index');
  10. var pushData = pageData.pushData;
  11. if (pushData.buttons && pushData.buttons[buttonIndex] && $.isFunction(pushData.buttons[buttonIndex].callback)) {
  12. pushData.buttons[buttonIndex].callback();
  13. }
  14. $view.trigger('spa:closepanel');
  15. }, $view);
  16. dtd.resolve();
  17. },
  18. beforeopen: function (pageData, dtd) {
  19. var $view = this;
  20. var pushData = pageData.pushData;
  21. var buttons = pushData.buttons ? pushData.buttons : [{text: '我知道了', class: 'btn-primary'}];
  22. var html = pushData.html ? pushData.html : '';
  23. $('.spa-page-bg', $view).css({
  24. opacity: 0
  25. }).transition({
  26. opacity: 0.6
  27. });
  28. var tpl = template('common/alert', {
  29. title: pushData.title,
  30. message: pushData.message,
  31. html: html,
  32. buttons: buttons
  33. });
  34. $view.find('.spa-page-body').html(tpl);
  35. // $view.find('.alert-body').css({'pointer-events' : 'none'});
  36. dtd.resolve();
  37. },
  38. beforeclose: function (panelData, dtd) {
  39. var $view = this;
  40. $('.spa-page-bg', $view).transition({
  41. opacity: 0
  42. });
  43. setTimeout(function(){
  44. $view.find('.alert-body').css({'pointer-events' : true});
  45. }, 100);
  46. dtd.resolve();
  47. }
  48. }
  49. })