2017-04-22 12 views
0

ビルドしていないサイトを管理しています。サイトにはいくつかのリンクがあり、リンクをクリックすると、別のhtmlファイルのコンテンツを含むモーダルウィンドウが開きます。それは今まで働いていましたが、今はありません。Javascriptのポップアップウィンドウが機能しない

私はサイトを引き継いだ時点から関連するすべてのファイルを比較しましたが、これに影響する変更は見られません。

ポップアップウィンドウ

は以下のようなものをと呼ばれています。

function bioLinkText($name,$text) { 
$name = strtolower(str_replace(" ","-",$name)); 
echo '<a href="/bios/'.$name.'.html" class="popUp">'.$text.'</a>';} 

<?php bioLinkText('Daniel Jones', 'Read more about Dr. Jones'); ?></p> 

それが開く必要がありますページはのfunctions.phpファイルから

/bios/daniel-jones.htmlですこの部分は正常に機能します。しかし、それはモーダルウィンドウを作成するために使用されていましたが、通常のリンクのようにリンクを開くだけです。

global.jsファイルから:

// AJAX Popups 
    function popUp(page,randId) { 
     $('body').append(
     '<div id="'+randId+'" class="pWin" style="display:none;position:fixed">'+ 
      '<span class="pHead">'+ 
       '<a href="'+page+'" target="_blank">Open in new window</a>'+ 
       '<span class="pClose">X</span>'+ 
      '</span>'+ 
      '<div class="pBod"></div>'+ 
     '</div>' 
     ); 

     var top = (h/2) - 150; 
     var left = (w/2) - 300; 

     $('#'+randId+'.pWin').addClass('large').css({top:top+'px',left:left+'px'}); 
     $('#'+randId+' .pBod').html('<img src="/images/loading.gif" alt="loading"/>').load(page+' #content', function() { 
      $('.pWin').show(300); 
      $('.pBod #content').find('img').filter('#portrait').attr('src', function(index, src) { 
       return '/bios/' + src; 
      }); 
     }); 

    } 

    $('.popUp').click(function() { 
     var randId = randomString(); 
     var num = $('.pWin').length; 
     if (num < 5) { 
      var page = $(this).attr('href'); 
      popUp(page,randId); 
      $('#'+randId+'.pWin').draggable({handle:'.pHead'}).resizable({alsoResize:'#'+randId+' .pBod', minWidth: 320, minHeight: 280, maxWidth: 800, maxHeight: 600}); 
     } 
     return false; 

    }); 

    function pClose(btn) { 
     var pWin = btn.closest('.pWin'); 
     pWin.hide(200, function() { pWin.remove(); }); 
    } 
    $('.pClose').live('click',function() { 
     var btn = $(this); 
     pClose(btn); 
    }); 
    $(document).keyup(function(e) { 
     if (e.keyCode == 27) { 
      $('.pWin').hide(200, function() { $('.pWin').remove(); }); 
     } 
    }); 

のstyle.cssファイルから:

.popUp, .pHead a { padding-right: 16px; background: url(/images/external.gif) 100% 50% no-repeat; } 

.popUp.noBg { background:none; padding-right:0; } 

私は10時間以上これを理解しようとしています。どんな助けでも大歓迎です。一つのことは...私はjavascript関数popUpがどのように呼び出されるのか理解していない。それは不足している成分ですか?

答えて

0

はこれを試してみてください:

//Make sure the DOM is ready (If you call this function before '.popUp' exists, it wont be matched, and the '.click' handler wont be added. 
$(document).ready(function() { 

    $('.popUp').click(function(e) { 
     //Prevent the default action (Clicking the button) 
     e.preventDefault(); 
     //..Your code here 
    }); 
}); 
+0

を? '$(」。にpopUp ')をクリックし(関数(E){ \t \t e.preventDefault(); \t \t VAR randId = randomString(); \t \t VAR NUM = $('。PWIN')の長さ; \t \t IF(NUM <5){ \t \t \t VARページ= $(この).ATTR( 'のhref'); \t \t \tにpopUp(ページ、randId); \t \t \t $( '#' (また、

0

まあ、私はそれを考え出しました。私はHREFにonclickの= "ポップアップ()" プロパティを追加し、機能を変更し、今では動作します。このよう

function bioLinkText($name,$text) { 
$name = strtolower(str_replace(" ","-",$name)); 
echo '<a href="/bios/'.$name.'.html" onclick="popup()" class="popUp">'.$text.'</a>'; 

}

関連する問題