javascript - example - popup jquery ejemplo
Evite el comportamiento de cierre de doble toque en jQuery Mobile Popup (2)
Kazekage Gaara tiene una buena idea, así que mira primero.
Otro requeriría vincular un evento doubletap al ícono de apertura de ventana emergente y evitar la acción predeterminada, desafortunadamente jQuery Mobile no tiene soporte para doubletap para que pueda usar este complemento:
(function($) {
$.fn.doubleTap = function(doubleTapCallback) {
return this.each(function(){
var elm = this;
var lastTap = 0;
$(elm).bind(''vmousedown'', function (e) {
var now = (new Date()).valueOf();
var diff = (now - lastTap);
lastTap = now ;
if (diff < 250) {
if($.isFunction( doubleTapCallback ))
{
doubleTapCallback.call(elm);
}
}
});
});
}
})(jQuery);
y atarlo así:
$(".icon").doubleTap(function(event){
event.preventDefault();
});
Solía haber una solución mucho más fácil para esto, jQUery Mobile solía tener un parámetro de configuración de entrada móvil que le permitía establecer cuánto tiempo puede durar el evento tap.
O puede controlar el intervalo entre pulsaciones y evitar acciones de permiso, como esta:
var lastTapTime;
function isJqmGhostClick(event) {
var currTapTime = new Date().getTime();
if(lastTapTime == null || currTapTime > (lastTapTime + 800)) {
lastTapTime = currTapTime;
return false;
}
else {
return true;
}
}
Estoy usando jQuery Mobile para crear una ventana emergente cerca de un botón de imagen de información (ver imagen a continuación). La ventana emergente que estoy creando tiene data-dismissable
conjunto data-dismissable
como false
. En rojo se ha resaltado el contenedor creado por jQuery Mobile.
Si el usuario toca una vez el icono i , funciona perfectamente. La ventana emergente se abre y se popupafteropen
evento popupafteropen
. Para descartarlo, el usuario puede pulsar (hacer clic) en la i o fuera del área roja (gracias al valor descartable de data-dismissable
). Por el contrario, si los usuarios realizan un doble toque (aquí quiero decir que la demora entre dos toques es muy corta), se abre la ventana emergente, se llama popupafteropen
pero luego también se llama close
(debido al segundo toque y valor popupafteropen
data-dismissable
) El resultado general es que la ventana emergente no se muestra.
¿Hay alguna solución para adoptar? Mi objetivo es evitar el segundo toque para mostrar la ventana emergente correctamente.
Gracias.
Puede manejar el evento e ignorarlo si la ventana emergente ya está abierta. Algo como :
if ($.mobile.activePage.find("#popupID").is(":visible") {
// Do something here if the popup is open
}