我正在使用以下代码
1)在DIV容器中显示已更改的内容,因此如果有人在文本框中键入,则应同时显示键入的内容
2)在选择字体时,应将字体应用于该内容
但它不能确定我在做什么错误?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Change Contents</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
$("#fs").change(function() {
alert($(this).val());
$('.changeMe').css("font-family", $(this).val());
});
$("#size").change(function() {
$('.changeMe').css("font-size", $(this).val() + "px");
});
</script>
</head>
<body>
<form id="myform">
<button>erase</button>
<select id="fs">
<option value="Arial">Arial</option>
<option value="Verdana ">Verdana </option>
<option value="Impact">Impact </option>
<option value="Comic Sans MS">Comic Sans MS</option>
</select>
<select id="size">
<option value="7">7</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
</form>
<br/>
<textarea class="changeMe">Text into textarea</textarea>
<div id="container" class="changeMe">
<div id="float">
<p>
Text into container
</p>
</div>
</div>
</body>
</html>
答案 0 :(得分:2)
请在jQuery ready()子句中初始化您的处理程序。
$(function() {
});
您的代码可能如下所示:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
...
<textarea id=ta class="changeMe">Text into textarea</textarea>
<div id="container" class="changeMe">
<div id="float">
<p>
Text into container
</p>
</div>
</div>
<script>
$(window).load(function(){
$('#ta').keyup(function(){
$('#float').html("<p>"+$(this).val()+"</p>");
});
$("#fs").change(function() {
$('.changeMe').css("font-family", $(this).val());
});
$("#size").change(function() {
$('.changeMe').css("font-size", $(this).val() + "px");
});
});
</script>
</body>
</html>
其他变化:
如果您只想更改div,只需在最后两位处理程序中将$('.changeMe')
替换为$('#float')
。
答案 1 :(得分:1)
您缺少ready handler:
$(function(){
// your code goes here
});
或者将代码放在</body>
标记之前的底部,以便在代码运行时,它知道元素。
以下代码应该可以正常工作:
$(function(){
$("#fs").change(function() {
alert($(this).val());
$('.changeMe').css("font-family", $(this).val());
});
$("#size").change(function() {
$('.changeMe').css("font-size", $(this).val() + "px");
});
});
答案 2 :(得分:0)
不要将脚本放在标题中:它们是在引用的DOM对象可用之前执行的。
将它放在身体末端:
<script>
$(window).load(function(){
$("#fs").change(function() {
alert($(this).val());
$('.changeMe').css("font-family", $(this).val());
$("#size").change(function() {
$('.changeMe').css("font-size", $(this).val() + "px");
});
});
</script>
答案 3 :(得分:0)
除了破坏说,你也可以使用jQuery(因为你把它标记为jQuery,我认为你使用它)ready方法
答案 4 :(得分:0)
它对我有用:http://jsfiddle.net/nanoquantumtech/YfQfr/
$(document).ready(function () {
$("#fs").live('change', function () {
alert($(this).val());
$('.changeMe').css("font-family", $(this).val());
});
$("#size").live('change', function () {
$('.changeMe').css("font-size", $(this).val() + "px");
});
$("#fs").trigger('change');
$("#size").trigger('change');
});