php包含后javascript无法运行

时间:2011-06-16 11:10:18

标签: php jquery

我正在尝试将javascript应用于简单的html textarea。我有onfocus和autogrow(实际上是jquery)。似乎我只能让一个或另一个工作但不能同时工作。

我的脚本有:

<?php
include 'header.php';
?>

这似乎是个问题。在header.php和index.php(包含头文件)中,我加载了jquery.js。当我从标题中删除此文件时,自动增长工作但不是我的onfocus事件(清除默认文本)。有没有办法包含另一个文件,而没有两个相互影响。我无法提供代码,因为它太长了。

这是我的onfocus代码:

<script type='text/javascript'>
    function addEvents(id) {
var field = document.getElementById(id);
field.onfocus = function () {
    if (this.value == "Answer this problem...") {
        this.value = "";
    } 
};
field.onblur = function () {
    if (this.value == "") {
        this.value = "Answer this problem...";
    } 
};

} ADDEVENTS( “answerbox”);         

4 个答案:

答案 0 :(得分:2)

规则1:仅加载jquery一次!您将它加载到同一页面两次。因此,将其从一个稍后加载的文件中删除。

我假设你在index.php中做的第一件事就是包含header.php,所以从index.php中删除jquery加载。

答案 1 :(得分:1)

将您的脚本放在一个单独的文件中,并使用php include_once函数包含在每个页面中。

创建文件 jquery.php 并添加以下内容。

<script type='text/javascript' src='jquery.js'></script> <script type="text/javascript" src="autogrow.js"></script>

并在header.php中

include_once('jquery.php');

并在index.php中

include_once('header.php');
include_once('jquery.php');

答案 2 :(得分:1)

此主题可能会回答您的问题

Check if jQuery is included in Header (Joomla)

答案 3 :(得分:1)

这与PHP包含文件无关。如果你多次包含它,jQuery就足够智能了。

这是一个狡猾的自动增长插件代码。

编辑query.autogrowtextarea.js文件。将第this.onfocus = grow;行更改为jQuery(this).focus(grow);

然后你的Javascript代码,我已将其更改为使用jQuery库(主要是因为它使用的代码很少,使其与IE6 +等旧版浏览器兼容)。

function addEvents(id) {
    var field = jQuery('#' + id);
    field.focus(function () {
        if (this.value == "Answer this problem...") {
            this.value = "";
        }
    });

    field.blur(function () {
        if (this.value == "") {
            this.value = "Answer this problem...";
        }
    });
}
addEvents("answerbox");
</script>

两者现在应该同时工作。