我正处于极限。 我必须为Web应用程序实现一些功能。问题是,由于公司政策,它只能在IE8中实施...... IE8甚至没有正常加载jsFiddle。我得到任何可能的和无法理解的错误。 我有很多PHP脚本,并作为一个响应(ajax请求)从其中一个我得到一个表与一些数据。 如果我单击此元素,则会出现一个编辑框,我可以修改此值。 第一个问题是,如果我先点击这个元素,我只能修改这个值,但我不能将光标设置在其他地方。它起初是开始的。如果我点击框中的任何其他位置,光标将消失,我无法做任何事情。 我认为这是我的代码中的一个问题。但是......我刚刚将一些相关的代码复制到一个新文件中(由于政策和版权,我不能在这里发布完整的代码)并且我得到一些像“预期的对象”这样的愚蠢错误,尽管该值已经是一个对象!
这里是代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="./JavaScript/jquery-1.9.1"></script>
<script type="text/javascript">
function modify(value){
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax');
$(value).addClass('ajax');
$(value).html(
'<input id="editbox"' + ' type="text" value="' + $(value).text() + '"/>');
$('#editbox').focus();
}
</script>
</head>
<body>
<table id="test" border="1">
<tr>
<td class="ajax" id="test" onclick="modify(this)">Click</td>
<td>Nothing</td>
</tr>
<tr>
<td id="tset" onclick="modify(this)">Click</td>
<td>Nothing</td>
</tr>
</table>
</body>
</html>
请帮助我某人......我根本不明白,为什么我不能正常放置光标。以及为什么我会得到这样的愚蠢错误。 我调查了调试器,其他任何东西都与其他调用(来自ajax-php)完全相同,但是这里它不会继续$(值)....
“预期对象”的第一个问题已解决 SRC =“ - &GT;的 &LT; - / JavaScript的/ jquery的-1.9.1 的 只是一个点。
但现在你可以看到我的光标问题了。我怎样才能得到与正常“文本框”(输入类型=“文本”值=“blabla”.....)时相同的内容,我可以将光标设置在我想要的任何地方
修改的 有点有趣。因为我似乎必须使用 $('#editbox')。focus(); 有人知道如何释放光标吗?
答案 0 :(得分:0)
您需要将脚本更改为此类
<script type="text/javascript">
function modify(value){
//$('.ajax').html($('.ajax input').val());
//$('.ajax').removeClass('ajax');
$("#" + value.id).addClass('ajax');
$("#" + value.id).html(
'<input id="editbox"' + ' type="text" value="' + $("#" + value.id).text() + '"/>');
$('#editbox').focus();
}
</script>
当您将html元素传递给函数时,它不会传递jQuery对象,只传递DOM对象。使用$(“#”+ value.id)查找DOM对象并将其转换为jQuery对象。