0

入力のあるフォームがあり、Jquery は特定の入力 (URL 入力) フォーム入力をリンクに作成しますが、たとえば、URL の 2 つの入力があります。HTML ID はurl0url1であり、最初のものを編集したい場合入力/url0 url1 の入力が表示され、変更は url0 ではなく url1 に対して行われ、入力をクリックすると、url1 の値が url0 と同じになります。ここで何を意味するかを正確に確認できます - jsfiddle

どうもありがとう

正確な手順:

  1. 入力のあるフォーム
  2. 2 つの URL 入力 url0/url1
  3. オンロードはリンクですが、クリック時に HTML に非表示の入力があるため、入力をアクティブにして編集可能にすることができます
  4. 入力からクリックすると、再びリンクに変換されます

問題は、これら 2 つの入力 (url0/url1) が混乱し、編集時に奇妙な動作をすることです。上記のリンクを確認してください

4

2 に答える 2

1

奇妙な振る舞いは、イベントの処理方法に関連しています

例えば

$('#url0,#url1').val($(this).text()).show().focus();

どちらかのリンクを1回クリックするだけで両方の入力が開きます。

入力とリンクの間に参照があり、それを維持するか、リンクから入力に動的に変更する必要があります。

psは、数日後にまったく同じコードが表示されるとは思っていませんでした:P

于 2012-06-22T12:57:11.993 に答える
1

動作中の jsFiddle を参照してください

これは、リンクをクリックしたときに機能する変更されたJSです-

$('.a0 a').click(function(e){
    e.preventDefault();
    $(this).parent().parent().find('input').val($(this).text()).show().focus();
    $(this).parent().hide();
})

$('#url0, #url1').each(
    function(index, element){
        $(element).blur(function(){
            $(this).hide().prev().show().find('a').html(this.value);
    })
    }    
);

リンクが含まれているdivをクリックすると、次のように動作します - jsFiddle

$('.a0').click(function(e){
    e.preventDefault();
    $(this).parent().find('input').val($(this).find('a').text()).show().focus();
    $(this).hide();
})

$('#url0, #url1').each(
    function(index, element){
        $(element).blur(function(){
            $(this).hide().prev().show().find('a').html(this.value);
    })
    }    
);

</p>

于 2012-06-22T13:05:24.997 に答える