2009-05-28 7 views
1

サイトのセクションをjQueryでインラインで編集しようとしていますが、編集可能なアイテムの一部がリンクであることが予想されます。フィールドを編集しようとすると、hrefをクリックします。ここjqueryとインラインでリンクを編集する - 編集中にリンクがクリックされないようにする

はjQueryのです:

$(".button-edit").click(function(){ 
    $(".edit").each(function() { 
     $(this).html('<input type="text" value="' + $(this).html() + '" />'); 
    }); 
}); 

とHTMLスニペット:

<li class="list-item" id="list-item-229"><a href="http://test.com/" class="edit">My site</a> 
<p class="edit">lorum ipsum description</p></li> 

編集ボタンをクリックした後:

<li class="list-item" id="list-item-229"><a href="http://test.com/" class="edit"><input type="text" value="My Site"></a> 
<p class="edit"><input type="text" value="lorum ipsum description"/></p></li> 

私のようなものを使用して試してみました:

$('.edit > a').bind("click", function(){ 
    return false; 
}); 

ただし、入力フィールドが編集されないようにします。 hrefのクリックを防止する方法はありますか?入力を編集可能にしておきますか?

答えて

0
$('.edit > a').bind("click", function(e){ 
    e.preventDefault(); 
    return false; 
}); 
0

これを試してみてください( "ボタン保存")場所$で

var editing=false; 

$(".button-edit").click(function(){ 
$(".edit").each(function() { 
     editing=true; 
     $(this).html('<input type="text" value="' + $(this).html() + '" />'); 
    }); 
}); 

$(".button-save").click(function(){ 
     editing=false; 
     //and you pick text from input and put in <p> 
}); 

$('a.edit').bind("click", function(e){ 
    if(editing){ 
      e.preventDefault(); 
      return false; 
    } 
}); 

あなたが編集を終了しているときに偽編集=を設定することができます。

+0

もう少しエレガントな例をありがとうございます。しかし、まだ入力タグをラップしてからinput要素をクリックすることはできません。この問題に別の方法で取り組まなければならないかもしれませんが、もう一度感謝します! –

関連する問題