0

同じページのさまざまな画像のポップアップとしてさまざまな div を表示したかったのです。以下は私のコードです。脚本

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"/>
<script>

function showdialog(linkName, linkClass) {
    //select all the a tag
    $(linkName).click(function (e) {
        //Cancel the link behavior
        e.preventDefault();
        //Get the A tag
        var id = $(this).attr('href');

        //Get the screen height and width
        var maskHeight = $(document).height();
        var maskWidth = $(window).width();

        //Set heigth and width to mask to fill up the whole screen
        $('#mask').css({ 'width': maskWidth, 'height': maskHeight });

        //transition effect     
        $('#mask').fadeIn(1000);
        $('#mask').fadeTo("slow", 0.8);

        //Get the window height and width
        var winH = $(window).height();
        var winW = $(window).width();

        //Set the popup window to center
        $(id).css('top', winH / 2 - $(id).height() / 2);
        $(id).css('left', winW / 2 - $(id).width() / 2);

        //transition effect
        $(id).fadeIn(2000);

    });

    //if close button is clicked
    $('.' + linkClass + ' .close').click(function (e) {
        //Cancel the link behaviors
        e.preventDefault();

        $('#mask').hide();
        $('.' + linkClass).hide();
    });

    $(window).resize(function () {

        var box = $('.' + linkClass);

        //Get the screen height and width
        var maskHeight = $(document).height();
        var maskWidth = $(window).width();

        //Set height and width to mask to fill up the whole screen
        $('#mask').css({ 'width': maskWidth, 'height': maskHeight });

        //Get the window height and width
        var winH = $(window).height();
        var winW = $(window).width();

        //Set the popup window to center
        box.css('top', winH / 2 - box.height() / 2);
        box.css('left', winW / 2 - box.width() / 2);

    });

}

  </script>

スタイル

        <style>
    #mask {
      position:absolute;
      left:0;
      top:0;
      z-index:9000;
      background-color:#ffffff;
      display:none;
    }

    .appDevClass,.productEngClass,.erpServClass,.testingClass,.portalMobClass,.legacyModClass {
      position:fixed;
      left:0;
      top:-100px;
      width:700px;
      height:auto;
      display:none;
      z-index:9999;
      padding:20px;
      box-shadow: 0 0 50px 10px #006357;
      border-radius: 12px;
    }

    #appDevLink,#productEngLink,#erpServLink,#testingLink,#portalMobLink,#legacyModLink {
      width:700px; 
      height:auto;
      padding:10px;
      background-color:#ffffff;
    }

    </style>

HTML

      <div>
           <div> <img src="servicePort.png" style="position:relative;left:260px;padding-bottom:20px;"/>
           </div>
           <div >
         <a href="#appDevLink" id="appDevLinkId" name="appDev" style="position:relative;left:370px;height:100%;">   <img  onclick="javascript:showdialog('#appDevLinkId','appDevClass')" src="appDev.png" id="appDevImg"/></a>
            </div>
            <div>
         <a href="#productEngLink" id="productEngLinkId" name="productEng" style="position:relative;left:150px; ">   <img onclick="javascript:showdialog('#productEngLinkId','productEngClass')" src="productEng.png" id="productEngImg"/></a>
         <a href="#erpServLink" id="erpServLinkId" name="erpServ" style="position:relative;left:370px;">   <img onclick="javascript:showdialog('#erpServLinkId','erpServClass')" src="erpServ.png" id="erpServImg"/></a>
            </div>
            <div>
         <a href="#testingLink" id="testingLinkId" name="testing" style="position:relative;left:150px;">   <img onclick="javascript:showdialog('#testingLinkId','testingClass')" src="testing.png" id="testingImg"/></a>
         <a href="#portalMobLink" id="portalMobLinkId" name="portalMob" style="position:relative;left:370px;">   <img onclick="javascript:showdialog('#portalMobLinkId','portalMobClass')" src="portalMob.png"  id="portalMobImg"/></a>
            </div>
            <div>
         <a href="#legacyModLink" id="legacyModLinkId" name="legacyMod"  style="position:relative;left:370px;">   <img onclick="javascript:showdialog('#legacyModLinkId','legacyModClass')" src="legacyMod.png" id="legacyModImg"/></a>
            </div>
            <div>
            <img src="bottomline.png" style="position:relative;left:70px;padding-top:10px;"/>
            </div>
        </div> 

                <div  id="appDevLink" class="appDevClass">
            <a href="#"class="close" style="float:right;background-color:black;padding:3px;color:white;"/>Close </a>
            <h3>abc </h3> 
            <p>
                some ocntent here 
            </p>
        </div>

            <div id="productEngLink" class="productEngClass">
             <a href="#"class="close" style="float:right;background-color:black;padding:3px;color:white;"/>Close </a>
             <h3>abc </h3> 
            <p>
                some ocntent here 
            </p>
        </div>

            <div id="erpServLink" class="erpServClass">
             <a href="#"class="close" style="float:right;background-color:black;padding:3px;color:white;"/>Close </a>
             <h3>abc </h3> 
            <p>
                some ocntent here 
            </p>
        </div>

            <div id="testingLink" class="testingClass">
             <a href="#"class="close" style="float:right;background-color:black;padding:3px;color:white;"/>Close </a>
             <h3>abc </h3> 
            <p>
                some ocntent here 
            </p>
        </div>

            <div id="portalMobLink" class="portalMobClass">
             <a href="#"class="close" style="float:right;background-color:black;padding:3px;color:white;"/>Close </a>

            <h3>abc </h3> 
            <p>
                some ocntent here 
            </p>
        </div>

            <div id="legacyModLink" class="legacyModClass">
             <a href="#"class="close" style="float:right;background-color:black;padding:3px;color:white;"/>Close </a>
            <h3>abc </h3> 
            <p>
                some ocntent here 
            </p>
        </div>

問題は、ポップアップと同じ div を複数回開くことです。つまり、時間の画像をクリックすると、divが1回開きます。もう一度同じ画像をクリックすると、divが2回開き、これが続きます。

このスクリプトにどのような問題があるのか​​ わかりません。誰でもこれで私を助けることができますか?

4

1 に答える 1

0

私はそれを解決しました。クリック関数の最後に以下のコードを追加しました

$(linkName).unbind('click');
于 2012-11-05T13:44:37.153 に答える