这是我在这里开始的第一个帖子:I Created A Dialog, Now How Can I Close It?
我正在创建一个新线程,因此我可以包含更新的代码。
首先,我想对所有在上面链接的帖子中帮助过我的人表示非常感谢,但正如我所说,我正在启动这个帖子,所以我可以添加代码示例。
我的一些页面上有一个对话框,显示在滚动上但是我遇到了一些麻烦。
此处可以看到此对话框:(显示的半透明框)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,但我只希望该框显示为ONCE。
如果有人不介意对此发表评论,我将非常感激,我当然期待您的回复。
非常感谢, Stuart K
答案 0 :(得分: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
Saludos。