2012-04-12 4 views
3

Meine Frage ist im Titel: Wie kann ich eine jquery fancybox (http://www.fancybox.net/) mit einem dblclick event öffnen?Wie öffne ich eine ausgefallene Box mit einem dblclick Event

Vielen Dank im Voraus für Ihre Antwort :)

edit: versuchte ich das, aber es scheint nicht zu funktionieren und ich weiß nicht wirklich, warum:

$("#id").dblclick(function(){ 

    $("#id").fancybox({ 
     ... 
    }); 
    $("#id").click(); //Trigger click to open the fancy because dblclick doesn't open the fancy 
    $("#id").unbind('click.fb'); //unbind the click fancybox event 

}); 

Die Idee war, Um mit der Phantasie-Box umzugehen, wenn ein dblclick ausgelöst wird, lösen Sie einen Klick aus, um die Phantasie zu öffnen, und lösen Sie das click.fb -Ereignis, um zu verhindern, dass sich die fancybox öffnet, wenn ein einzelner Klick vom Benutzer ausgelöst wird. Leider scheint das Entbinden ("click.fb") nicht zu funktionieren.

+0

versuchen Sie aktualisierte Lösung. – undefined

Antwort

3

Ich bin mir nicht sicher, ob ich völlig die Frage bekommen, aber versuchen Sie dies:

$('button').dblclick(function() { 
    $.fancybox({ 
     href: '#fancybox' 
     // other options here 
    }); 
}); 

Keine Notwendigkeit, etwas zu lösen.

BEARBEITEN: Hier ist ein Beispiel-Beispiel.

http://jsfiddle.net/abqTD/3/

+0

Es funktioniert wie ein Charme danke :) – guts

+0

Kein Problem. Fiddle-Link zu einer Arbeitskopie aktualisiert. Fancybox lädt nicht auf dem ersten. – rgin

0

versuchen Sie jQuery .trigger() -Methode. Auf diese Weise sollten Sie ein weiteres Element wie Button zur Aktivierung von fancybox haben.

$("button").dblclick(function() { 
    $("#fancybox").trigger('click'); 

}); 

$("#fancybox").click($(this).fancybox(){ 
     'transitionIn' : 'elastic', 
     'transitionOut' : 'elastic', 
     'speedIn'  : 600, 
     'speedOut'  : 200, 
     'overlayShow' : false 
    }); 
+0

Dies funktioniert nicht, da es die Fancybox nach einem dblclick bindet, aber die Fancybox nur geöffnet wird, wenn ein click -Ereignis ausgelöst wird. Also mit diesem Code, wenn ich doppelklicke, wird die fancybox behandelt (und nicht ausgelöst, weil nur das click-Ereignis die Phantasie öffnen kann) und dann wird die Phantasie bei jedem Klick-Ereignis geöffnet, das nicht das ist, was ich will (nicht sicher, ob ich ' m klar ...) – guts

+0

ja, das war klar. – undefined

+0

Diese Lösung scheint in Ordnung, aber ich muss keinen separaten Button :) – guts

0

Verwenden fancybox Methoden, dies zu tun.

HTML

img src="images/sample_image.png" alt="Sample Title" class="fancybox" 

jQuery

$(document).ready(function() { 
    $('.fancybox').dblclick(function() { 
     var imgSrc = $(this).attr('src'), 
      imgTitle = $(this).attr('alt'); 

     $.fancybox.open({href : imgSrc , title : imgTitle }); 
    }); 
}); 

Hope this half ...;)

1
$(".fbox").dblclick(function() { $.fancybox({ 
    'transitionIn' : 'elastic', 
    'transitionOut' : 'elastic', 
    'speedIn' : 600, 
    'speedOut' : 200, 
    'href': $(this).attr('href') 
    // 'overlayShow' : false 
    }); 
}); 

...<img src="path/someimage_thumb.jpg" href="path/someimage.jpg" class="fbox"> 

Ich versuche, etwas ähnliches, aber auf eine Klasse zu tun. Versucht, es mit jquery image picker zu integrieren.