2013-10-26 39 views
0

即時通訊新的jQuery和試圖讓這個工作。有人能告訴我什麼是錯的。 當我點擊demo.html中的鏈接時,會彈出一個「FadeIn」-div。 但是當鏈接被點擊時沒有任何反應?jQuery模型彈出不工作

文件:jquery.reveal.js

(function($) { 

/*--------------------------- 
Defaults for Reveal 
----------------------------*/ 

/*--------------------------- 
Listener for data-reveal-id attributes 
----------------------------*/ 

    $('a[data-reveal-id]').on('click', function(e) { 
     e.preventDefault(); 
     var modalLocation = $(this).prop('data-reveal-id'); 
     $('#'+modalLocation).reveal($(this).data()); 
    }); 

/*--------------------------- 
Extend and Execute 
----------------------------*/ 

    $.fn.reveal = function(options) { 


     var defaults = { 
      animation: 'fadeAndPop', //fade, fadeAndPop, none 
      animationspeed: 300, //how fast animtions are 
      closeonbackgroundclick: true, //if you click background will modal close? 
      dismissmodalclass: 'close-reveal-modal' //the class of a button or element that will close an open modal 
     }; 

     //Extend dem' options 
     var options = $.extend({}, defaults, options); 

     return this.each(function() { 

/*--------------------------- 
Global Variables 
----------------------------*/ 
      var modal = $(this), 
       topMeasure = parseInt(modal.css('top')), 
       topOffset = modal.height() + topMeasure, 
       locked = false, 
       modalBG = $('.reveal-modal-bg'); 

/*--------------------------- 
Create Modal BG 
----------------------------*/ 
      if(modalBG.length == 0) { 
       modalBG = $('<div class="reveal-modal-bg" />').insertAfter(modal); 
      }   

/*--------------------------- 
Open & Close Animations 
----------------------------*/ 
      //Entrance Animations 
      modal.bind('reveal:open', function() { 
       modalBG.unbind('click.modalEvent'); 
       $('.' + options.dismissmodalclass).unbind('click.modalEvent'); 
       if(!locked) { 
        lockModal(); 
        if(options.animation == "fadeAndPop") { 
         modal.css({'top': $(document).scrollTop()-topOffset, 'opacity' : 0, 'visibility' : 'visible'}); 
         modalBG.fadeIn(options.animationspeed/2); 
         modal.delay(options.animationspeed/2).animate({ 
          "top": $(document).scrollTop()+topMeasure + 'px', 
          "opacity" : 1 
         }, options.animationspeed,unlockModal());     
        } 
        if(options.animation == "fade") { 
         modal.css({'opacity' : 0, 'visibility' : 'visible', 'top': $(document).scrollTop()+topMeasure}); 
         modalBG.fadeIn(options.animationspeed/2); 
         modal.delay(options.animationspeed/2).animate({ 
          "opacity" : 1 
         }, options.animationspeed,unlockModal());     
        } 
        if(options.animation == "none") { 
         modal.css({'visibility' : 'visible', 'top':$(document).scrollTop()+topMeasure}); 
         modalBG.css({"display":"block"}); 
         unlockModal()    
        } 
       } 
       modal.unbind('reveal:open'); 
      });  

      //Closing Animation 
      modal.bind('reveal:close', function() { 
       if(!locked) { 
        lockModal(); 
        if(options.animation == "fadeAndPop") { 
         modalBG.delay(options.animationspeed).fadeOut(options.animationspeed); 
         modal.animate({ 
          "top": $(document).scrollTop()-topOffset + 'px', 
          "opacity" : 0 
         }, options.animationspeed/2, function() { 
          modal.css({'top':topMeasure, 'opacity' : 1, 'visibility' : 'hidden'}); 
          unlockModal(); 
         });     
        } 
        if(options.animation == "fade") { 
         modalBG.delay(options.animationspeed).fadeOut(options.animationspeed); 
         modal.animate({ 
          "opacity" : 0 
         }, options.animationspeed, function() { 
          modal.css({'opacity' : 1, 'visibility' : 'hidden', 'top' : topMeasure}); 
          unlockModal(); 
         });     
        } 
        if(options.animation == "none") { 
         modal.css({'visibility' : 'hidden', 'top' : topMeasure}); 
         modalBG.css({'display' : 'none'}); 
        }  
       } 
       modal.unbind('reveal:close'); 
      });  

/*--------------------------- 
Open and add Closing Listeners 
----------------------------*/ 
      //Open Modal Immediately 
     modal.trigger('reveal:open') 

      //Close Modal Listeners 
      var closeButton = $('.' + options.dismissmodalclass).bind('click.modalEvent', function() { 
       modal.trigger('reveal:close') 
      }); 

      if(options.closeonbackgroundclick) { 
       modalBG.css({"cursor":"pointer"}) 
       modalBG.bind('click.modalEvent', function() { 
        modal.trigger('reveal:close') 
       }); 
      } 
      $('body').keyup(function(e) { 
       if(e.which===27){ modal.trigger('reveal:close'); } // 27 is the keycode for the Escape key 
      }); 


/*--------------------------- 
Animations Locks 
----------------------------*/ 
      function unlockModal() { 
       locked = false; 
      } 
      function lockModal() { 
       locked = true; 
      } 

     });//each call 
    }//orbit plugin call 
})(jQuery); 

文件:demo.html

<!DOCTYPE html> 
<head> 
    <meta charset="utf-8" /> 
    <title>Reveal Demo</title> 

    <!-- Attach our CSS --> 
    <link rel="stylesheet" href="reveal.css"> 

    <!-- Attach necessary scripts --> 
    <!-- <script type="text/javascript" src="jquery-1.4.4.min.js"></script> --> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-2.0.3.min.js"></script> 
    <script type="text/javascript" src="jquery.reveal.js"></script> 

    <style type="text/css"> 
     body { font-family: "HelveticaNeue","Helvetica-Neue", "Helvetica", "Arial", sans-serif; } 
     .big-link { display:block; margin-top: 100px; text-align: center; font-size: 70px; color: #06f; } 
    </style> 

</head> 
<body> 

    <a href="#" class="big-link" data-reveal-id="myModal"> 
     Fade and Pop 
    </a>  

    <a href="#" class="big-link" data-reveal-id="myModal" data-animation="fade"> 
     Fade 
    </a> 

    <a href="#" class="big-link" data-reveal-id="myModal" data-animation="none"> 
     None 
    </a> 

    <div id="myModal" class="reveal-modal"> 
     <h1>Reveal Modal Goodness</h1> 
     <p>This is a default modal in all its glory, but any of the styles here can easily be changed in the CSS.</p> 
     <a class="close-reveal-modal">&#215;</a> 
    </div> 

</body> 

謝謝..希望有人能告訴我是什麼問題。

+0

你剛纔說什麼都沒有發生,我們不知道什麼是真正應該發生。因此,如果您對代碼中的問題更具體,它會很有幫助。 –

+0

當我點擊鏈接時,應該彈出一個FadeIn div。 :)但是什麼也沒有發生 – Chak

+0

你會得到任何javascript錯誤?使用某種調試工具來檢查腳本中是否有錯誤 – user2849406

回答

1

更改道具排隊

var modalLocation = $(this).prop('data-reveal-id');// change this line to 

    var modalLocation = $(this).attr('data-reveal-id'); 

ATTR並添加reveal.css文件,將工作

的jsfiddle http://jsfiddle.net/YfSQn/

+0

工作!大!謝謝 – Chak

+0

如何將div內容更改爲iframe,其中鏈接按鈕指示應彈出哪個網站 – Chak

+0

@ user2923444您可以使用fancybox。它有很多功能並且非常易於使用。您可以輕鬆使用iframe – Manish