actionSheet.js 1.4 KB

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