0

クリック時にいくつかの入力テキストフィールドとチェックボックスを追加します。しかし、チェックボックスがチェックされているとき、私はClassを入力テキストフィールドに切り替えたいと思います。これは私の作成コードです:

jQuery(function() {
var counter = 0;

$('#appendbtn').click(function() {
    var elems = '<div>' + '<input type="checkbox" id="checkbox"' + (counter) + '" class="item"/>' + '<input type="text" id="inputfield"' + (counter) + '"/>' + '</div>';
    $('#box').append(elems);
    counter++;
    return false;
});

これが起こるべきことです。

if ($("#checkbox").is(":checked"))
 {
$("inputfield" + counter).toggleClass("complete")
 });

もちろんこれは正しくありませんが、私が言っていることを理解していただければ幸いです;)ところで、ifステートメントなしでこれは可能ですか?

これがjsfiddleですhttp://www.jsfiddle.net/gkdKY/

ああ、これはまさに私が欲しいものですhttp://www.jsfiddle.net/xzmcL/です が、チェックボックスが追加されています!

4

2 に答える 2

1

この行:

var elems = '<div>' + '<input type="checkbox" id="checkbox"' + (counter) + '" class="item"/>' + '<input type="text" id="inputfield"' + (counter) + '"/>' + '</div>';

...2つの追加の引用符があります。そのはず:

var elems = '<div>' + '<input type="checkbox" id="checkbox' + (counter) + '" class="item"/>' + '<input type="text" id="inputfield' + (counter) + '"/>' + '</div>';

clickそれはイベントのセレクターを壊します。ただし、「クリックして」リンクが押されるまで存在しない要素をフックしようとしているため、とにかく機能しないことに注意してください。とにかく、.live()またはを使用する必要があり.delegate()ます。

このようなものが機能する可能性があります:

$("#drag").delegate("input[type=checkbox]", "change", function(){
   var index = this.id.substring(8);
   $("#inputfield" + index).toggleClass("complete");
});
于 2010-12-19T11:40:32.407 に答える
0

あなたが欲しい:

$('input:checkbox').click(function(){
   $('#inputfield').toggleClass('bold');
});

チェックボックスのチェック状態を動的にtrueに設定していないと想定しています。

于 2010-12-18T19:41:03.103 に答える