2010-12-18 3 views
0

Я добавляю некоторые текстовые поля ввода и флажки onclick. Но когда установлен флажок, я хочу toggleClass ввести текстовое поле ввода. Это мой создать код:Как добавить toggleClass в установленный флажок с jQuery?

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") 
}); 

Ofcourse это не правильно, но я надеюсь, что вы получите то, что я имею в виду;) это кстати можно без если заявление?

здесь является jsfiddle http://www.jsfiddle.net/gkdKY/

ой, и это именно то, что я хочу http://www.jsfiddle.net/xzmcL/ , но с прилагаемыми флажками!

+1

Ваш 'elems' строка не является правильным' <ввод ID = "флажок" + (счетчик) + «" 'будет в конечном итоге, как '<ввод ID = "флажок" 1" '. То же самое относится к вашему текстовому полю. – Andreas

ответ

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 события. Но обратите внимание, что это не сработает, поскольку вы пытаетесь подключить элемент, который не существует, пока не будет нажата ссылка «click me», поэтому вам нужно использовать .live() или .delegate() для этого.

Нечто подобное может работать:

$("#drag").delegate("input[type=checkbox]", "change", function(){ 
    var index = this.id.substring(8); 
    $("#inputfield" + index).toggleClass("complete"); 
}); 
+0

Спасибо sje397, он, похоже, не работает, я могу спросить, почему подстрока (8)? :) – Opoe

+0

@Opoe: 'substring (8)' преобразует id как 'checkbox13' в' 13', удалив первые 8 символов. – sje397

+0

@Opoe: Я просто сделал небольшое редактирование (удалено '.' С начала 'complete') - oops. – sje397

0

Вы хотите:

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

Я предполагаю, что вы не устанавливать свои галочки проверил состояние истина динамически.

+0

спасибо, да его onclick :) он не добавляет или не переключается на класс полужирным, хотя – Opoe

+1

Можете ли вы разместить HTML-код, чтобы я мог исправить часть jQuery? –

+0

of the course спасибо вам в OP – Opoe

 Смежные вопросы

  • Нет связанных вопросов^_^