0

我在点击时附加了一些输入文本字段和复选框。但是当一个复选框被选中时,我想将toggleClass切换到输入文本字段。这是我的创建代码:

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>';

...有两个额外的引号。它应该是:

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

这会破坏您的click事件选择器。但请注意,这无论如何都行不通,因为您试图挂钩一个在按下“单击我”链接之前不存在的元素 - 所以无论如何您都需要使用.live()or .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 回答