Мне интересно, это где-то рядом с тем, что ты пытаешься сделать. Мне нужно было придумать какую-то временную разметку, и я понятия не имею, откуда взялся widgetId
. Тем не менее, этот эффект вам нужен?
РЕДАКТИРОВАТЬ - Я не совсем уверен, что здесь делает widgetId
, и мой исходный код игнорировал его, поэтому я изменил код так, чтобы он запускал клик input:button
, который будет манипулировать это братья и сестры.
Пример HTML
<table>
<tr>
<td>
<label>Checkbox <input type="checkbox" value="test1"/></label>
<input type="hidden" value="widget"/>
<label>Checkbox <input type="checkbox" value="test2"/></label>
<label>Checkbox <input type="checkbox" value="test3"/></label>
<input type="button" class="check" value="Check"/>
</td>
</tr>
<tr>
<td>
<label>Checkbox <input type="checkbox" value="test1"/></label>
<input type="hidden" value="widget"/>
<label>Checkbox <input type="checkbox" value="test2"/></label>
<label>Checkbox <input type="checkbox" value="test3"/></label>
<input type="button" class="check" value="Check"/>
</td>
</tr>
<tr>
<td>
<label>Checkbox <input type="checkbox" value="test1"/></label>
<input type="hidden" value="widget"/>
<label>Checkbox <input type="checkbox" value="test2"/></label>
<label>Checkbox <input type="checkbox" value="test3"/></label>
<input type="button" class="check" value="Check"/>
</td>
</tr>
</table>
JQuery
$('.check').click(function(){
var $td = $(this).parent('td');
if (!confirm('This widget will be removed, ok?')) {
$td.find(':checkbox').prop({disabled: true, checked: true});
} else {
$td.find(':checkbox').prop({disabled: false, checked: false});
}
});
http://jsfiddle.net/SPVPx/1/
РЕДАКТИРОВАТЬ 2
Другой пример, использующий input:button
s, не входящий в table
.
HTML
<input type="button" class="check" value="Remove Widget 1" data-widget-id="widget1"/>
<input type="button" class="check" value="Remove Widget 2" data-widget-id="widget2"/>
<input type="button" class="check" value="Remove Widget 3" data-widget-id="widget3"/>
<table>
<tr>
<td>
Widget 1:
<label>Checkbox <input type="checkbox" value="test1"/></label>
<input type="hidden" value="widget1"/>
<label>Checkbox <input type="checkbox" value="test2"/></label>
<label>Checkbox <input type="checkbox" value="test3"/></label>
</td>
</tr>
<tr>
<td>
Widget 2:
<label>Checkbox <input type="checkbox" value="test1"/></label>
<input type="hidden" value="widget2"/>
<label>Checkbox <input type="checkbox" value="test2"/></label>
<label>Checkbox <input type="checkbox" value="test3"/></label>
</td>
</tr>
<tr>
<td>
Widget 3:
<label>Checkbox <input type="checkbox" value="test1"/></label>
<input type="hidden" value="widget3"/>
<label>Checkbox <input type="checkbox" value="test2"/></label>
<label>Checkbox <input type="checkbox" value="test3"/></label>
</td>
</tr>
</table>
JQuery
// For testing only.
$(':checkbox').prop({disabled: true, checked: true});
$('.check').click(function(){
var id = $(this).data('widget-id'),
$td = $('table tr td input:hidden').filter(function(){
return this.value == id;
}).parent('td');
if (confirm('This widget will be removed, ok?')) {
$td.find(':checkbox').prop({disabled: false, checked: false});
} else {
$td.find(':checkbox').prop({disabled: true, checked: true});
}
});
http://jsfiddle.net/SPVPx/2/