2009-12-03 13 views
7

He estado jugando con jeditable durante 2 días, ¡y es genial!Jeditable para editar un enlace. Ayuda

Pero tengo un pequeño problema, tengo un enlace que debe ser editable, pero cada vez que el campo se puede editar, no puedo editar ese campo, cuando hago clic, salta directamente a ese enlace.

¿Alguna solución?

Aquí está mi código

<a href="$homeurl/$hashkey" class="editsubject" id="$hashkey">$subject</a><span class="edittrigger" style="cursor:pointer;background:#EEEEEE;">edit</span> 


$(document).ready(function() { 
      $('.editsubject').editable('editsubject.php', { 
        event : 'editclick', 
        cancel : 'Cancel', 
        submit : 'OK', 
        indicator : 'Wait...', 
        id : 'hk', 
        name : 'ns', 
        css : 'inherit' 
      }); 
      $('.edittrigger').bind('click', function() { 
       $(this).prev().trigger('editclick'); 
      }); 
     }); 

Gracias

+2

Me pregunto por qué necesita el texto del enlace para ser editable? ¿Cómo pretende que el usuario haga clic en el enlace para seguir el enlace y haga clic en el enlace para editar el texto? Es posible que desee considerar la separación de 2. –

+0

Estoy utilizando un desencadenador independiente para editar el título del enlace. Entonces, cuando el usuario hace clic en el enlace, seguirá el enlace y cuando haga clic en el enlace de edición, el título del enlace se podrá editar. – Santana

+0

Tengo exactamente el mismo problema. ¿Has logrado resolverlo? – zaius

Respuesta

7

problema jEditable, he aquí una solución

me gustaría utilizar un lapso oculta y luego tener que sustituir el texto del enlace en enviar, y cuando hace clic en el disparador, hace que el enlace sea invisible y muestre el tramo oculto

<script type='text/javascript'> 
$(document).ready(function() { 
    $('.proxyedit').editable('editsubject.php', { 
     event : 'editclick', 
     cancel : 'Cancel', 
     submit : 'OK', 
     indicator : 'Wait...', 
     id : 'hk', 
     name : 'ns', 
     css : 'inherit', 
     callback : function(value, settings) { 
      $(this).css({'display':'none'}); 
      $('.editsubject').text($(this).text()).css({'display':'inline'}); 
     } 

    }); 
    $('.edittrigger').bind('click', function() { 
     $(this).prev().trigger('editclick'); 
     $('.proxyedit').css({'display':'inline'}); 
     $('.editsubject').css({'display':'none'}); 
    }); 
}); 
</script> 

en el cuerpo

<a href="$homeurl/$hashkey" class="editsubject" id="$hashkey">$subject</a><span style="display:none;" class="proxyedit">$subject</span><span class="edittrigger" style="cursor:pointer;background:#EEEEEE;">edit</span> 
2

usar JavaScript para inutilizar el enlace en el caso de que contiene un formulario. Trabajo realizado:

$(document).ready(function() { 
    $('a.my-editable-link').click(function() { 
    form = $(this).find('form'); 
    if (form.length) { 
     form.submit(); 
     return false; 
    } else { 
     return true; 
    } 
    } 
}) 
1

Puede deshabilitar los enlaces editables con jQuery. Algo como:

$(".editable a").bind("click", function(event) { 
    return false; 
}); 
Cuestiones relacionadas