2010-08-05 89 views
0

与之前一样工作在同一页面上,但现在我将它用作一个操作jQuery的操场,这样我就可以为my'boss学习它。不幸的是,我无法获得该文件中的JavaScript执行,更不用说给我一个警告。页面上的所有PHP和HTML都可以正常工作,这只是脚本问题。我究竟做错了什么?混合使用PHP和jQuery

<?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> 

回答

5

你打电话playAnimation()<html>标记之前,所以你的HTML格式不正确。 JQuery可能找不到#blur元素,因为它实际上不在您的网页内,更不用说在<body>之内。

在body标签后面的某个地方移动if(isset($_POST['mushu'])) ...代码块。

+0

好吧,让我感动的PHPŤ o在身体标记之后,但在“”之前,仍然没有任何反应。我是不正确地格式化jQuery? – Andy 2010-08-05 14:18:11

+1

你的jquery很奇怪 - 你已经设置好了,这样点击图片就可以在图片上设置blur()函数。你为什么不首先尝试让click()函数提醒一些事情,以便你能看到它的工作。 – 2010-08-05 14:25:29

1

检查FireBug的控制台或FireFox的错误控制台。

+0

不要认为这应该是被投票... +1 – 2010-08-05 14:19:51

+0

我投了反对票看起来像一个评论给我。 – Reigel 2010-08-05 14:47:34

0

像斯科特说,你需要在页面的实际正文中回显div。另外,我认为你遇到的另一个问题是你打电话给.blur,这是鼠标离开图像时的事件。既然你有像动画一样的功能,我想你可能实际上正在寻找.fade http://api.jquery.com/fadeOut/。尝试类似于:

<script> 
    $(document).ready(function() 
    { 
     $('#blur').click(function() 
     { 
      $(this).fadeOut('slow', function() 
      { 
       alert('All Done'); 
      }); 
     }); 
    }); 
</script> 
1

验证是否包含jquery.js,并检查错误控制台。

否则,可能会或可能不会有助于你的JavaScript问题,有几个明显的错误:

  • 你在playAnimation()您打开HTML标记之前输出HTML
  • 你的表单的action属性是空白 - 你需要<?=<?php echo
  • 脚本标记应该读<script type="text/javascript">