2011-11-24 18 views
5

Mam problem z IE (co za niespodzianka). Robię funkcję raportowania problemów (zgłoś zły obraz ...) na mojej stronie. Chcę pokazać prosty formularz "Zgłoś ten obraz" z kilkoma pytaniami (powód zgłoszenia ...). Powinien pojawić się po kliknięciu obrazu raportu. Działa doskonale w FF i Chrome, ale w IE występuje problem. Div powinien pokazywać pozycję kliknięcia myszą. Po raz pierwszy pokazuje się we właściwym miejscu, ale kiedy go zamknę i kliknę na inny obraz raportu bez ponownego ładowania strony (jest więcej obrazów raportu na stronie), to ponownie pokazuje się w tym samym miejscu, w którym pokazuje po raz pierwszy (tylko w IE). Oto mój kod:Problem z pozycjonowaniem narzędzia jQuery w IE

$(document).ready(function(){ 
    $(".proofreporter").click(function(e){ 
    $('.popup').remove(); //used to remove previously shown elements 

    $.ajaxSetup ({ 
    // Disable caching of AJAX responses 
     cache: false 
    }); 


    // setTimeout(function(){$('.popup').remove()},2000); 

    var name = $(this).attr('id'); 
    function showData(data) { 
     $("body").append(data); 
    } 
    //x = e.pageX; first I tried this to get position but same result 
    //y = e.pageY; 

    var pos = $(this).offset(); 
    x=pos.left; 
    y=pos.top; 

    alert(x + 'x' + y); 
    $.get('includes/reporter.php?reportimgdiv=' + name + '&x=' + x + '&y=' + y, showData); 
    }); 
}); 

A oto kod Reporter.php

if(isset($_GET['reportimgdiv'])) 


{  //report IMAGE 
    ?> 
    <style type="text/css">                                
    .popup {   //SOLVED; change to this: #<?echo report$_GET['reportimgdiv']?> 
    position: absolute; 
    left: <?echo $_GET['x'];?>; 
    top: <?echo $_GET['y'];?>; 
    z-index: 100; 
    width: 280px; 
    } 
    .subtle { 
    margin: 0px; 
    padding: 5px; 
    border: 2px solid gray; 
    font-size: small; 
    text-align: left; 
    background-color: #EEE; 
    color: #444; 
    } 
    </style> 
    <? 
    $imgid=$_GET['reportimgdiv']; 
    ?> 
    <div id="reportForm001" class="popup" style="margin-top: 0em; "> //solved: change id="report<?echo $imgid?>" 
    <!-- 
    <form name="form1" method="post" target="reportframe" action="update/pagereportframe.php" class="subtle" style="position: relative; left: 1em; top: 2px;"> 
    --> 
    <form name="form1" method="post" target="reportframe" action="includes/reporter.php" class="subtle" style="position: relative; left: 1em; top: 2px; background-color: white" >  
    <input name="id" type="hidden" value="<?echo $imgid; ?>"> 
    <div style="position: absolute; right: 1em; font-size: x-small"><a href="#" onClick="jQuery('.popup').remove();">CLOSE [X]</a></div> 
    <h3>What is wrong with this image? <?echo $_GET['x'];?> X <?echo $_GET['y'];?> </h3> 
    <input type="radio" name="reason" value="1"> BLAH BLAH/b>. <br> 
    <input type="radio" name="reason" value="2"> BLAH BLAH/b>. <br> 
    <br>Comment (optional):<br> 
    <textarea name="comment" rows="3" style="width: 100%"></textarea><br> 
    <input value="Submit" type="submit"> 
    </form> 
    </div> 
<? 
    } 
+6

Możesz zamieścić własną odpowiedź i oznaczyć ją jako taką –

Odpowiedz

0

rozwiązany

używam teraz identyfikator (zamiast klasy) w celu zidentyfikowania POPUP div . Zobacz komentarze do kodu reporter.php, aby uzyskać więcej informacji.