我有以下表格,每个记录都有一个重复按钮。如果给定记录的$ item [' active']的值为0,并且我单击单选按钮使其为1,则ajax将触发,并且一切都按预期工作。新值为1;但是,如果我然后单击另一个按钮将变量的值返回0,则没有任何反应。就好像ajax会发射一次然后不再可用。
<form action="<?php echo $this->form_action; ?>" method="post">
<p class="hide"><input name="status" type="text" value="" /></p>
<table id="manageItAll" cellpadding="0" cellspacing="0" border="0">
<thead>
<tr>
<th><?php echo $this->translate('Title');?></th>
<th><?php echo $this->translate('Status');?></th>
</tr>
</thead>
<tbody>
<?php $ind = 0; ?>
<?php foreach ($this->items as $item) {;?>
<tr id="<?php echo $item['id']; ?>">
<td data-label="Title"><span class="orangelink"><?php echo $item->title; ?></span></td>
<td align="left" style="padding-left:22px"
class="color-status-<?php echo $item['active']; ?>">
<?php if (in_array($item['active'], array(0, 1))) { ?>
<input type="radio" name="item[<?php echo $ind; ?>][status]"
value="1" <?php if ($item['active'] == 1) echo 'checked'; ?>>Active
<br>
<input type="radio" name="item[<?php echo $ind; ?>][status]"
value="0" <?php if ($item['active'] == 0) echo 'checked'; ?>>Inactive
<?php } else { ?>
<?php echo $item['active']; ?>
<?php } ?>
</td>
</tr>
<?php $ind++; ?>
<?php } ?>
</tbody>
</table>
</form>
<script type="text/javascript">
$(document).ready(function() {
if (typeof ind == "undefined") {
ind = 0;
}
$('input[type="radio"]').live('change', function () {
var status = this.value;
var id = $(this).parents('tr').attr('id');
$.ajax({
type: 'post',
url: "?module=items&controller=listing&action=changeStatus",
data: 'id=' + id + '&status=' + status,
beforeSend: function () {
if (status == '0') {
$('#' + id).animate({
'backgroundColor': '#FFBFBF'
}, 400);
} else {
$('#' + id).animate({
'backgroundColor': '#A3D1A3'
}, 400);
}
},
success: function (result) {
if (result == 'ok') {
$.get(window.location.href, function (data) {
$('#' + id).html($(data).find('#' + id).html());
setTimeout(function () {
$("#" + id + "").animate({'backgroundColor': 'transparent'}, 400);
deletePage();
}, 500);
});
} else {
alert(result);
$("#" + id + "").animate({'backgroundColor': 'transparent'}, 400);
}
}
});
});
});
</script>
答案 0 :(得分:0)
尝试更改
$('input[type="radio"]').click(function () {
到
$('input[type="radio"]').on('change',function () {