和以前一样在同一个页面上工作,但现在我正在使用它作为玩弄jQuery的游乐场,所以我可以为我的'boss'学习它。不幸的是,我无法在此文件中执行javascript来执行,更不用说给我一个警告。页面上的所有PHP和HTML都能很好地工作,这只是脚本的问题。我做错了什么?
<?php
if( isset($_POST['mushu']) )
{
playAnimation();
clickInc();
}
function playAnimation()
{
echo "<img src='cocktail-kitten.jpg' id='blur'>";
}
function clickInc()
{
$count = glob("click*.txt");
$clicks = file($count[0]);
$clicks[0]+=1;
$fp = fopen($count[0], "w") or die("Can't open file");
fputs($fp, $clicks[0]);
fclose($fp);
echo $clicks[0];
}
?>
<html>
<head>
<title>Adobe Kitten</title>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<form action="<?php $_SERVER['PHP_SELF']; ?>"
method="post">
<input type="submit"
value="Let's see what Mushu is up to."
name="mushu">
</form>
<script>
$(document).ready( function()
{
$('#blur').click( function()
{
$(this).blur( function()
{
alert('Handler for .blur() called.');
});
});
});
</script>
</body>
</html>
答案 0 :(得分:5)
您在playAnimation()
标记之前呼叫<html>
,因此您的HTML格式不正确。 JQuery可能找不到#blur
元素,因为它实际上并不在您的网页中,更不用说在<body>
内。
将if( isset($_POST['mushu'])) ...
代码块移到body标记之后的某处。
答案 1 :(得分:1)
检查FireBug的控制台或FireFox的错误控制台。
答案 2 :(得分:1)
验证是否包含jquery.js,并检查错误控制台。
否则,一些明显的错误可能会或可能不会导致您的javascript问题:
playAnimation()
输出HTML <?=
或<?php echo
<script type="text/javascript">
答案 3 :(得分:0)
就像Scott说的那样,你需要在页面的实际主体中回显div。此外,我认为你遇到的另一个问题是你正在调用.blur,这是鼠标离开图像时的事件。由于你有类似动画的功能,我认为你可能真的在寻找.fade http://api.jquery.com/fadeOut/。尝试类似:
<script>
$(document).ready( function()
{
$('#blur').click( function()
{
$(this).fadeOut('slow', function()
{
alert('All Done');
});
});
});
</script>