2012-02-13 13 views
1

jQueryの新機能です。追加されたリストにjQuery UIボタンを追加しようとしています。
ここに私が使ったコードはありますが、もちろんです。私は誰かが、このおかげで私を助けることができると思います:(

を動作しません:)追加されたリスト項目にjQuery UIボタンを追加しますか?

<ul></ul> 
<button id="Add" type="button">Add</button> 

<script> 
    $(document).ready(function() { 
     $("#Add").button({ 
      icons: { 
       primary: "ui-icon-plusthick" 
      }, 
      text: true 
     }); 

     $("#Add").click(function() { 
      $("ul").append("<li>" 
         + "<span>SOME TEXT</span>" 
         + "<button class='Remove' type='button'>Remove</button>" 
         + "</li>"); 
      return false; 
     }); 

     $(".Remove").button({ 
      icons: { 
       primary: "ui-icon-minusthick" 
      }, 
      text: true 
     }); 
    }); 
</script> 
+0

' 'と' 'から' type = button'を削除する必要はありません彼らは既にボタンです – elclanrs

+0

@elclanrs: '

+1

ああ、よく、私の悪い。 – elclanrs

答えて

4

この:。

$(".Remove").button({ 
    icons: { 
     primary: "ui-icon-minusthick" 
    }, 
    text: true 
}); 

あなただけDOMである.Remove要素に適用します$('.Remove').button(...)に電話し、電話するときには.Remove要素がありません。これをあなたの#Addハンドラにマージして、作成時に新しいボタンがjQuery-UI-ifiedになるようにします。このような何か:

$("#Add").click(function() { 
    var $li = $('<li><span>SOME TEXT</span><button class="Remove" type="button">Remove</button></li>'); 
    $li.find('button').button({ 
     icons: { primary: 'ui-icon-minusthick' }, 
     text: true 
    }); 
    $("ul").append($li); 
    return false; 
}); 

デモ:http://jsfiddle.net/ambiguous/fu9e9/

そして、あなたの(予想)次の質問には、あなたが "削除" ボタンをフックする$(document).on(...)を使用したいと思う:

​$('ul').on('click', '.Remove', function() { 
    $(this).closest('li').remove(); 
});​​​​​​​​ 

デモ:http://jsfiddle.net/ambiguous/fu9e9/2/

これは、コールバック関数をすべての既存のおよび将来のすべての要素にフックします(.Remove要素)。

+1

+1。私はちょうど本質的に同じ答えを掲示し、あなたのことを見た。おっとっと。 – nnnnnn

+0

@nnnnnn:Ha!あなたは "次の"質問にも答えました。 –

+0

これは私が探しているものです!どうもありがとう。 – Drew

関連する問題