【发布时间】:2014-02-20 22:28:47
【问题描述】:
我的 index.php 有以下几行:
<!doctype html><html class=""><head><title>a title</title>
<link href="_css/boilerplate.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="_script/popup.js"></script>
....那么我们也得到了:
<?php
if(isset ($_GET['page']))
{
if ($_GET['page'] == "mail")
{
echo "<script>window.alert('Found the reply!');var formPosted = true;</script>";
}
}
?>
<script>
if(formPosted) {
window.alert("popupclick!");
popupClick();
}
</script>
警报弹出点击!显示在屏幕上,但函数 popupClick() 似乎不起作用。
popup.js(其中有函数popupClick()在:
jQuery(function($) {
$("a.topopup").click(function() {
loading(); // loading
setTimeout(function(){ // then show popup, deley in .5 second
loadPopup(); // function show popup
}, 500); // .5 second
return false;
});
/* event for close the popup */
$("div.close").hover(
function() {
$('span.ecs_tooltip').show();
},
function () {
$('span.ecs_tooltip').hide();
}
);
$("div.close").click(function() {
disablePopup(); // function close pop up
});
$(this).keyup(function(event) {
if (event.which == 27) { // 27 is 'Ecs' in the keyboard
disablePopup(); // function close pop up
}
});
$("div#backgroundPopup").click(function() {
disablePopup(); // function close pop up
});
/************** start: functions. **************/
function popupClick() {
window.alert("insidePopupClick!!!!");
loading(); // loading
setTimeout(function(){ // then show popup, deley in .5 second
loadPopup(); // function show popup
}, 500); // .5 second
}
function loading() {
$("div.loader").show();
}
function closeloading() {
$("div.loader").fadeOut('normal');
}
var popupStatus = 0; // set value
function loadPopup() {
if(popupStatus == 0) { // if value is 0, show popup
closeloading(); // fadeout loading
$("#toPopup").fadeIn(0500); // fadein popup div
$("#backgroundPopup").css("opacity", "0.7"); // css opacity, supports IE7, IE8
$("#backgroundPopup").fadeIn(0001);
popupStatus = 1; // and set value to 1
}
}
function disablePopup() {
if(popupStatus == 1) { // if value is 1, close popup
$("#toPopup").fadeOut("normal");
$("#backgroundPopup").fadeOut("normal");
popupStatus = 0; // and set value to 0
}
}
/************** end: functions. **************/
}); // jQuery End
感谢您的帮助!克里斯
【问题讨论】:
-
您的函数在全球范围内不可用,因此您不能在全球范围内使用它。您只能在定义它的范围内使用它。
window.popupClick = popupClick应该将函数公开给全局范围。 -
在其他任何地方都没有该函数 popupClick() 的重复项。老实说,我有点困惑,我修改了 Java 的变量和方法范围。我没有意识到 JS 甚至有作用域。如何将函数 popupClick() 公开?
-
window.popupClick = popupClick将使其全球化。 *"possible duplicate" 评论提出了另一个与这个问题有点相似的问题,它的答案也回答了这个问题。 -
抱歉凯文,我今晚不太好,有点脑筋急转弯。我真的不明白另一个帖子。
标签: javascript jquery html popup call