1

これが私が取得しようとしているものです#edit。jQueryをクリックすると、最も近いtrtdが検索され、そのコンテンツが前のhtml#collapseを値として持つ入力に置き換えられます。#collapsejsFiddleを試しましたが成功しませんでした:http://jsfiddle.net/8PDdn/1/

誰かが私が欲しいものを手に入れるのを手伝ってくれる?

4

3 に答える 3

1

preventDefault()eventは、選択された要素ではなく、オブジェクトのメソッドの1つです。event代わりに、オブジェクトに対して呼び出す必要があります。また blur、入力のイベントを使用して、編集後にdivタグの内容を変更することもできます。

$(function() {   
    $("a#edit").click(function(event) {
        event.preventDefault();
        var currentTodo = $("#collapse");
        var cVal = currentTodo.html();
        currentTodo.html('<input type="text" name="description" value="'+ cVal +'">');
    });

    $(document).on('blur', '#collapse input', function(){
        $(this).parent().html(this.value)
    })
});

フィドル

于 2012-08-12T14:46:27.813 に答える
0
    $(this).preventDefault();

これは、デフォルトのイベントを防ぐ方法ではありません。イベントをコールバックに渡す必要があります。

$(function() {

    $("a#edit").click(function(e) {
        $(e).preventDefault();
        var currentTodo = $(this).closest("tr").find("#collapse");
        var cVal = currentTodo.html();
        currentTodo.html('<input type="text" name="description" value="'+ cVal +'">');
    });

});
于 2012-08-12T14:46:46.667 に答える
0

ここで間違っていることはほとんどありません。

  1. id一意である必要があります。同じIDを持つ要素が多数ある場合は、クラスに変更してください。
  2. あなたの問題はこれによって引き起こされます:

    $("a#edit").click(function() {
        $(this).preventDefault(); ---> there is no preventDefault method on this
       ...
    });
    

次のように変更する必要があります。

$("a#edit").click(function(e) {
        $(e).preventDefault();
       ...
    });
于 2012-08-12T14:50:08.303 に答える