0

这是我从这里开始的第一个线程的第二个线程:我创建了一个对话框,现在如何关闭它?

我正在创建一个新线程,以便包含更新的代码。

首先,我想非常感谢所有在上面链接的帖子中帮助过我的人,但正如我所说,我正在启动这个线程,这样我就可以添加代码示例。

我的某些页面上有一个对话框出现在滚动条上,但我遇到了一些麻烦。

这个对话框可以在这里看到:(出现的半透明框)http://classifieds.your-adrenaline-fix.com/detail.php?fatherID=37&TypeID=42&ListingID=42

在 detail.php 我有:(
在头脑中)

    <script type="text/javascript">
    function loaddiv(thediv, thefile) {
        if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
        } else {
        xmlhttp = new ActiveXObject ('Microsoft.XMLHTTP');
        }

        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                document.getElementById(thediv).innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open('GET', thefile, true);
        xmlhttp.send();
    }
    </script>

在那之下:

    <body onscroll="loaddiv('div2', 'do-you-have-a-dirt-bike-for-sale.html')">

然后:

    if (!Has_Seen_DB_For_Sale_Dialog($user_ip)){
        echo "<div id='div2'></div>";
        ip_add($user_ip);
    }

除此之外(在包含文件中)我有:

    function Has_Seen_DB_For_Sale_Dialog($ip){
        global $user_ip;
        $query ="SELECT `IP` FROM `DB_For_Sale_Dialog` WHERE `IP`='$user_ip'";
        $query_run = mysql_query($query);

        $query_num_rows = mysql_num_rows($query_run);
        if($query_num_rows==0){
            return false;
            }   else if($query_num_rows==1){
            return true;
        }
    }

    function ip_add($ip){
        $query = "INSERT INTO `DB_For_Sale_Dialog` VALUES('', '$ip') ";
        @$query_run = mysql_query($query);
    }

显示的文件如下所示:

<div id='div2'>
    <div class="DoYouHaveADirtBikeForSaleBox" id="DoYouHaveADirtBikeForSaleBox">
    <h2>Got A Dirt Bike You Want to Sell?</h2>
    <p class="DirtBikeForSaleBannerButton">
    <a href="http://classifieds.your-adrenaline-fix.com/add.php">Yea, Show Me How</a>
    </p>

    <p class="DirtBikeForSaleBannerButtonNoThanks">
    <a onclick="javascript:var div = document.getElementById('div2');div.parentNode.removeChild(div);">Nope, Get This Out of The Way</a></p> 
    </div>
    </div>

我非常感谢在上一个帖子中为我提供的帮助,并且在开始新帖子时没有不尊重的意思,但我现在遇到的问题是:

当我将鼠标悬停在右键以关闭框时,指针不会像其他链接那样变成手。

当对话框关闭并滚动页面时,该框会重新出现。(显示框的功能称为 onscroll 但我只希望框出现一次。

如果有人不介意对此发表评论,我将不胜感激,我当然期待您的回复。

非常感谢,斯图尔特 K

4

1 回答 1

0

使用这种方法:

<script type="text/javascript">
function loaddiv(thediv, thefile) {
    if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
    } else {
    xmlhttp = new ActiveXObject ('Microsoft.XMLHTTP');
    }

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById(thediv).innerHTML = xmlhttp.responseText;
            window.onscroll = null;
        }
    }
    xmlhttp.open('GET', thefile, true);
    xmlhttp.send();
}

</script>

--------我做了这个小测试--------------

function loaddiv() {
alert('hiiii');
window.onscroll = null;

        }

身体呼唤:

<body onscroll="loaddiv();"> 

并且只工作一次 xD

萨卢多斯。

于 2013-03-20T20:49:36.403 回答