Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/08/2010, 03:11
danneg
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Ayuda [plugin jquery para mostrar capas]

Hola foreros!!

mi problemas esta vez (espero que alguien me ayude) es este:

estoy desarrollando un plug-in jquery para mi, el cual al pulsar un boton o enlace muestra una capa tipo widget el cual tendra una aplicacion dentro

el problema es que no ejecuta el codigo ademas de detener lo que esta escrito despues de llamar dicha funcion

la funcion deberia ser algo asi

Código Javascript:
Ver original
  1. $("#objeto").contextDialog("url de la aplicacion", "titulo", "aliniacion");

con ese codigo se supone que aparecera a un lado de el boton pulsado, pero no funciona, revise todo el codigo, y no encunetro mi error, por favor si pueden identificar cual es, me ayudaria mucho, igual cualquier sugerencia sobre optimizacion y cambio para mejorar!!

les dejo el codigo

Código Javascript:
Ver original
  1. function($) {
  2.     $.fn.contextDialog = function(title, urlContent, align){
  3.         return this.each(
  4.             $(this).click(function(e){
  5.                 $.fn.contextDialog._hide();
  6.                 this.append(
  7.                     '<div id="appSide">' +
  8.                         '<div id="appTitle">' + title + '</div>' +
  9.                         '<div id="appContent">' +
  10.                             '<iframe id="appFrame" src="' + urlContent + '" frameborder="0" framespacing="0" border="0"></iframe>' +
  11.                         '</div>' +
  12.                         '<div id="appOptins">Ver mas</div>' +
  13.                     '</div>'
  14.                 );
  15.                 var pos = this.offset();
  16.                 switch(align){
  17.                     case "right":
  18.                         $("#appSide").css({
  19.                             top: pos.top,
  20.                             left: pos.left + this.innerWidth()
  21.                         });
  22.                     break;
  23.                     case "left":
  24.                         $("#appSide").css({
  25.                             top: pos.top,
  26.                             left: pos.left - $("#appSide").innerWidth() - 5
  27.                         });
  28.                     break;
  29.                     default:
  30.                         $("#appSide").css({
  31.                             top: pos.top,
  32.                             left: pos.left + this.innerWidth()
  33.                         });
  34.                     break;
  35.                 }
  36.                 this.click( function(a) {
  37.                     $.fn.contextDialog._hide();
  38.                     a.preventDefault();
  39.                     this.click( function(o) {
  40.                         $.fn.contextDialog(urlContent, title, align);
  41.                         o.preventDefault();
  42.                     });
  43.                 });
  44.                 e.preventDefault();
  45.             });
  46.         );
  47.     };
  48.  
  49.     $.fn.contextDialog._hide = function() {
  50.             $("#appSide").remove();
  51.     };
  52. })(jQuery);

aa, una cosa mas, esto fue basado a un codigo que desarrolle solo para un boton, pero no me sirve solo usarlo con un boton, ese codigo funciona bien, pero repito no me sirve solo para un objeto, tambien les dejo el codigo que funciona

Código Javascript:
Ver original
  1. (function($) {
  2.  
  3.     $._context_dialog = {
  4.  
  5.     // Metodos de traducción, cambia el texto entre comillas
  6.     //por los de tu idioma o el idioma deseado.
  7.  
  8.         dialogClass: null,
  9.         showAll: 'Ver todas',
  10.  
  11.     //El cuerpo y estructura de la extención, NO. editar
  12.         // Public methods
  13.  
  14.         context_dialog: function(urlContent, title, align) {
  15.             if( title == null ) title = 'App';
  16.             $._context_dialog._show(title, urlContent, align)
  17.         },
  18.  
  19.         // Private methods
  20.  
  21.         _show: function(title, urlContent, align) {
  22.  
  23.             $._context_dialog._hide();
  24.  
  25.             $("#appButton").append(
  26.                 '<div id="appSide">' +
  27.                     '<div id="appTitle">' + title + '</div>' +
  28.                     '<div id="appContent">' +
  29.                         '<iframe id="appFrame" src="' + urlContent + '" frameborder="0" framespacing="0" border="0"></iframe>' +
  30.                     '</div>' +
  31.                     '<div id="appOptins">' + $._context_dialog.showAll + '</div>' +
  32.                 '</div>'
  33.             );
  34.  
  35.             var pos = $("#appButton").offset();
  36.             switch(align){
  37.                 case "right":
  38.                     $("#appSide").css({
  39.                         top: pos.top,
  40.                         left: pos.left + $("#appButton").innerWidth()
  41.                     });
  42.                 break;
  43.                 case "left":
  44.                     $("#appSide").css({
  45.                         top: pos.top,
  46.                         left: pos.left - $("#appSide").innerWidth() - 5
  47.                     });
  48.                 break;
  49.                 default:
  50.                     $("#appSide").css({
  51.                         top: pos.top,
  52.                         left: pos.left + $("#appButton").innerWidth()
  53.                     });
  54.                 break;
  55.             }
  56.             $("#appButtonA").click( function(e) {
  57.                 $._context_dialog._hide();
  58.                 e.preventDefault();
  59.                 $("#appButtonA").click( function(e) {
  60.                     $._context_dialog.context_dialog(urlContent, title, align)
  61.                 });
  62.             });
  63.         },
  64.  
  65.         _hide: function() {
  66.             $("#appSide").remove();
  67.         }
  68.  
  69.     },
  70.  
  71.     // Shortuct functions
  72.  
  73.     contextDialog = function(urlContent, title, align) {
  74.         $._context_dialog.context_dialog(urlContent, title, align);
  75.     }
  76.  
  77. })(jQuery);

y pueden ver el codigo en ejecucion aqui

el del primer codigo http://dannegm.com/senpaiUno
el del segundo codigo http://dannegm.com/senpaiDos

el boton que debe ejecutar es el que esta de gris obscuro titulado como notificaciones