我正在尝试将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”);
答案 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)
此主题可能会回答您的问题
答案 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>
两者现在应该同时工作。