2009-11-17 6 views

Répondre

9

Cela fonctionne mais vous devez cliquer à nouveau dans la zone de texte pour le masquer. Bien que cela peut être réglé facilement:

<div id="divPop" style="z-index:500;position:absolute;display:none"> 
    Hello World! This is Popup Div. 
</div> 
<input id="txt" type="text" value="" width="200px" height="50px" 
    style="border:2px solid #ffeeee;color:#eeeeff;background-color:#aaeeaa"/> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#txt").popupDiv("#divPop"); 
    }); 
</script> 

jQuery.fn.popupDiv = function (divToPop) { 
    var pos=$(this).offset(); 
    var h=$(this).height(); 
    var w=$(this).width(); 

    $(divToPop).css({ left: pos.left + w + 10, top: pos.top + h + 10 }); 

    $(this).click(function(e) { 
     $(divToPop).css({ left: pos.left + w + 10, top: pos.top + h + 10 }); 
     if ($(divToPop).css('display') !== 'none') { 
      $(divToPop).hide(); 
     } 
     else { 
      $(divToPop).show(); 
     } 
    }); 
}; 
+0

wow, merci beaucoup –

+0

Notez que vous pouvez utiliser $ (divToPop) .toggle() pour basculer si l'élément est caché à la place de votre if/else. Un peu plus propre et (probablement) moins cassant. – RecursivelyIronic

0

Vous pourriez main un rouleau comme ceci:

<div> 
    <span onclick="popout(this)">Click Here</span> 
    <div class="mypopout"></div> 
</div> 

function popout(ele) { 
    $(ele).next('.mypopout').html('some html'); 
    $(ele).next('.mypopout').toggle(); 
} 
+0

appel de fonction séparée de HTML et de le mettre balise script à l'intérieur. – rahul

Questions connexes