2011-06-18 16 views
0

私はテキストのリストを持っています。このテキストがクリックされるたびに、テキストボックスになります。ただし、テキストボックスをダブルクリックすると使用できなくなります。これは私のjavascriptです:div動的テキストボックスリストバグjquery

<div id="xxxxxxx" class="l">Text here</div> 

答えて

0

修正済みです。

$('.l').live('click', function() { 
    if ($('#ltb').length > 0) return; 
    // rest of code here 

あなたはoneliveを交換する場合にも動作します。私は同じidの2つのdivを作成することに問題があると思うので、これを作成する前に存在するかどうかをチェックします。 hereから

無効で同じIDを使用して複数の要素 で文書。

などについてone

(一度イベントをバインドするために使用される、jQueryのポケットリファレンスを読んで数日前にこの知りました):これは助けにはならなかった

http://api.jquery.com/one/

+0

ありがとうございます。これは完全に機能します。 – jbills

0

変更z-indexパラメータ:テキストが含まれてい

$('.l').live('click', function() { 
$('<input type="text" id="ltb" name="'+$(this).attr("id")+'" class="'+$(this).attr("class")+'">').insertAfter($(this)).val($(this).text()); 
$('#ltb').focus().blur(function() { 
    $('<div id="'+$(this).attr("name")+'" class="l">'+$(this).val()+'</div>').insertAfter($(this)); 
    $('#'+$(this).attr("class")).text($(this).val()); 
    $(this).remove(); 
}); 
$('#ltb').keypress(function(event) 
{ 
    var keycode = (event.keyCode ? event.keyCode : event.which); 
    if(keycode == '13'){ 
     $('<div id="'+$(this).attr("name")+'" class="l">'+$(this).val()+'</div>').insertAfter($(this)); 
     $('#'+$(this).attr("class")).text($(this).val()); 
     $(this).remove(); 
    } 

}); 
$(this).remove(); 
//$(this).hide(); 
}); 

div要素は次のようになります。

+0

。私はいくつかのテストを行い、それをクリックすると、それを再度クリックするとこのバグが発生することがわかりました。 – jbills