jquery.fancybox-textarea.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*!
  2. * Buttons helper for fancyBox
  3. * version: 1.0.5 (Mon, 15 Oct 2012)
  4. * @requires fancyBox v2.0 or later
  5. *
  6. * Usage:
  7. * $(".fancybox").fancybox({
  8. * helpers : {
  9. * textarea: {
  10. * position : 'bottom',
  11. * collect_input : function(){},
  12. * init_input: function(){}
  13. * }
  14. * }
  15. * });
  16. *
  17. */
  18. (function ($) {
  19. //Shortcut for fancyBox object
  20. var F = $.fancybox;
  21. //Add helper object
  22. F.helpers.textarea = {
  23. defaults : {
  24. position : 'bottom', // 'top' or 'bottom'
  25. tpl : '<div id="fancybox-textarea"><div class="textarea-frame"><div id="fancybox-textarea-title">编辑公告内容</div><textarea id="fancybox-textarea-box"></textarea></div></div>',
  26. init_input: function (){
  27. return '';
  28. },
  29. collect_input: function (val){
  30. console.log(val);
  31. }
  32. },
  33. area : null,
  34. beforeLoad: function (opts, obj) {
  35. //Increase top margin to give space for buttons
  36. obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
  37. },
  38. afterShow: function (opts, obj) {
  39. if (!this.area) {
  40. this.area = $(opts.tpl).addClass(opts.position).appendTo('body');
  41. var w_width = $(window).width();
  42. var ml = parseInt((w_width - 330) / 2);
  43. $('#fancybox-textarea').css('left', ml + 'px');
  44. $('#fancybox-textarea-box').val(opts.init_input());
  45. //引入easyui的draggable
  46. $('#fancybox-textarea').draggable({
  47. handle: '#fancybox-textarea-title'
  48. });
  49. }
  50. },
  51. beforeClose: function (opts, obj) {
  52. var value = $('#fancybox-textarea-box').val();
  53. opts.collect_input(value);
  54. if (this.area) {
  55. this.area.remove();
  56. }
  57. this.area = null;
  58. }
  59. };
  60. }(jQuery));