Pregunta

Con la ayuda de esta comunidad, he sido capaz de pasar una parte estática de texto de Javascript (del lado del cliente) a ASP 3.5 (lado del servidor)! Esta pieza de código funciona muy bien:

$('.drop').droppable({
    tolerance: "touch", // Here should be a string
    drop: function() {

    $('[id$="myHidden"]').val('Testy test test');
    __doPostBack('<%= HiddenButton.UniqueID  %>', '');
    alert($('[id$="myHidden"]').val());

    }


});

Lo que hace lo anterior, es cuando se deja caer un elemento con la clase de .drop, asignará la cadena "prueba de la prueba Testy" a mi campo escondido en mi página aspx. A continuación, se hace una devolución de datos a un botón invisible Tengo que está dentro de un UpdatePanel. incendios evento Click del botón oculto, lo que arroja un MsgBox que muestra el contenido del elemento oculto, que invariablemente son "prueba de la prueba Testy".

Ahora aquí es donde estoy teniendo algunos problemas. De todo lo que cae dentro de la zona de saltos, en lugar de establecer el valor del campo oculto a una cadena estática, quiero configurarlo para que el ID de lo que fuera me cayó en la zona de saltos. Esto es lo que he cambiado:

 $('[id$="myHidden"]').val($(ui.draggable).attr("id"));
    __doPostBack('<%= HiddenButton.UniqueID  %>', '');
    alert($('[id$="myHidden"]').val());

Ahora, de repente, cuando se me cae algo se queda pegado a la zona de saltos, y no se activa el evento de caída. Me rompo algo? O estoy tratando de obtener el ID del elemento caído por el camino equivocado?

En caso de que importa, aquí es la materia aspx relevante:

<asp:Button ID="HiddenButton" runat="server" Text="Button" />         

Ese botón está normalmente oculta a través de CSS, que acabo de dejar que por ahora no oculta para propósitos de prueba.

EDITAR !!!!:

He intentado esto así, y no funciona (para que pueda descartar la cosa 'var'?)

var foo = $(ui.draggable).attr("id")
    $('[id$="myHidden"]').val(foo);
    __doPostBack('<%= HiddenButton.UniqueID  %>', '');
    alert($('[id$="myHidden"]').val());
¿Fue útil?

Solución

En función de su caída, usted no está ejerciendo ninguna parámetros formales:

drop: function() { 

debería ser

drop: function(ev, ui) {

supongo esta expresión en su devolución de llamada caída:

$(ui.draggable).attr("id")

está fallando porque el objeto de interfaz de usuario no se puede hacer referencia en el ámbito de la función.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top