jQuery,fancybox 工作,但仅当您单击该图像两次时

发布于 2024-10-12 05:19:17 字数 1562 浏览 3 评论 0原文

我有一个问题...

JS

$('#Contact').ready(function(){
    $('a#Contact-Map').live('click',function(event){
        event.preventDefault();
        $('a#Contact-Map').fancybox({
            'transitionIn'  :   'elastic',
            'transitionOut' :   'elastic',
            'speedIn'           :   600, 
            'speedOut'          :   200, 
            'overlayShow'   :   true
        });
    });
});

HTML

<div class="Module-Frame" id="Contact">
    <a id="Contact-Map" href="./Modules/Contact/Images/mapa_big.png">
        <img src="./Modules/Contact/Images/mapa.png" alt=""/>
    </a>
</div>

此 HTML 代码由 .load() jQuery 函数加载。 这是有效的,但只有当您单击此图像两次时...

请帮助:)


带有 load() func

$(document).ready(function(){

    $("#Menu").children().click(function(event){
        $("#Content").hide().load('./Modules/'+ event.target.id.substr(5) +'/index.php', function() {
            $(this).fadeIn();
        });
    });



});



HTML的 JS

< html  >
< head  > ...

...
<body>
...
            <div id="Menu">
                <a id="Menu-News" href="#" title="Aktualnosci"> aktualności  |
                <a id="Menu-Aboutus" href="#" title="O nas"> o nas  | 
                <a id="Menu-Contact" href="#" title="Kontakt"> kontakt  | 
                <a id="Menu-Gallery" href="#" title="Galeria"> galeria 

            </div>
...
< div id=#content> ...

I have a problem ...

JS

$('#Contact').ready(function(){
    $('a#Contact-Map').live('click',function(event){
        event.preventDefault();
        $('a#Contact-Map').fancybox({
            'transitionIn'  :   'elastic',
            'transitionOut' :   'elastic',
            'speedIn'           :   600, 
            'speedOut'          :   200, 
            'overlayShow'   :   true
        });
    });
});

HTML

<div class="Module-Frame" id="Contact">
    <a id="Contact-Map" href="./Modules/Contact/Images/mapa_big.png">
        <img src="./Modules/Contact/Images/mapa.png" alt=""/>
    </a>
</div>

This HTML code is loaded by .load() jQuery function.
That's working but only when you click this image twice ...

Help pls :)


JS with load() func

$(document).ready(function(){

    $("#Menu").children().click(function(event){
        $("#Content").hide().load('./Modules/'+ event.target.id.substr(5) +'/index.php', function() {
            $(this).fadeIn();
        });
    });



});



HTML

< html  >
< head  > ...

...
<body>
...
            <div id="Menu">
                <a id="Menu-News" href="#" title="Aktualnosci"> aktualności  |
                <a id="Menu-Aboutus" href="#" title="O nas"> o nas  | 
                <a id="Menu-Contact" href="#" title="Kontakt"> kontakt  | 
                <a id="Menu-Gallery" href="#" title="Galeria"> galeria 

            </div>
...
< div id=#content> ...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

土豪 2024-10-19 05:19:17

经过几个小时后,我简单地通过更改解决了问题:

$(this).fancybox({
至:
$.fancybox(这个,{

$('#Contact').ready(function(){
    $('a#Contact-Map').live('click',function(event){
        event.preventDefault();
        $.fancybox(this,{
            'transitionIn'  :   'elastic',
            'transitionOut' :   'elastic',
            'speedIn'           :   600, 
            'speedOut'          :   200, 
            'overlayShow'   :   true
        });
    });

});

After many hours I solved the problem simply by change:

$(this).fancybox({
to:
$.fancybox(this,{

$('#Contact').ready(function(){
    $('a#Contact-Map').live('click',function(event){
        event.preventDefault();
        $.fancybox(this,{
            'transitionIn'  :   'elastic',
            'transitionOut' :   'elastic',
            'speedIn'           :   600, 
            'speedOut'          :   200, 
            'overlayShow'   :   true
        });
    });

});

画▽骨i 2024-10-19 05:19:17

删除 html 中的 onclick,它在事件处理程序之前触发。

Remove your onclick in your html, it's triggering before your event handler.

残月升风 2024-10-19 05:19:17

我也遇到了这个问题。包含样式表后,只需单击一下即可使用。来自 README.md:

<link rel="stylesheet" href="/fancybox/jquery.fancybox.css" type="text/css" media="screen" />

I also encountered this problem. After including the stylesheet it worked with a single click. From the README.md:

<link rel="stylesheet" href="/fancybox/jquery.fancybox.css" type="text/css" media="screen" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文