0

もう限界です。Web アプリケーションにいくつかの機能を実装する必要があります。問題は、会社のポリシーにより IE8 にしか実装できないことです... IE8 は jsFiddle を正常にロードしません。可能性のある理解できないエラーが発生します。私は多くのphpスクリプトを持っており、そのうちの1つからの応答(ajax-request)として、いくつかのデータを含むテーブルを取得します。この要素をクリックすると、編集ボックスが表示され、この値を変更できます。最初の問題は、最初にこの要素をクリックした場合にのみこの値を変更できることですが、カーソルを他の場所に設定することはできません。まずは冒頭です。ボックス内の他の場所をクリックすると、カーソルが消えて何もできなくなります。私のコードの問題だと思いました。しかし...

ここにコード:

<!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 からの) 他の呼び出しとまったく同じでしたが、ここでは $(value) に進みません...

「期待されるオブジェクト」の最初の問題は src="--> . <--/JavaScript/jquery-1.9.1で解決され ました。

しかし、今ではカーソルに関する私の問題を見ることができます。通常の「テキストボックス」(input type="text" value="blabla".....)がある場合と同じようにするにはどうすればよいですか。カーソルを好きな場所に設定するだけです。

編集 面白いものを手に入れました。$('#editbox').focus(); で作業する必要があるようです。 カーソルを解放する方法を知っている人はいますか?

4

1 に答える 1

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オブジェクトに変換されます。

于 2013-03-13T15:28:43.320 に答える