最终编辑:我已经解决了用.trigger('click')替换.change()的问题。工作得很好。
谢谢大家
上次编辑:
我试图在Jsfiddle上重现这个问题,但它工作得很好:https://jsfiddle.net/a8e0fmn0/9/
EDIT:(参见新代码)我用Number发出了一些警告,当我执行时,结果是:
当我单击“idModalCheckbox:1-2-3-3”时
当我单击“idCheckbox:3”时
结束编辑
-
我有2.change函数,第一个更改第二个,第二个生成ajax请求。
麦可德.js:
$(document).ready(function(){
$('#modalCheckBox').on('change', '#idModalCheckbox', function(){
alert('1');
var id = $(this).parents('#id');
$('#idList li').each(function() {
if($(this).children('#id').html() == id) {
alert('2');
//loop to find the right row
item = $(this).find('#idListCheckBox').prop('checked', true).change();
}
});
});
$('#idCheckBox').change(function(){
alert('3');
var oPost = {
"1": a,
"2": b,
"3": c};
//oPost get data from the $(this) row
console.log(oPost);
$.ajax(
{
url : "http://" + d + e + f,
data : oPost,
type : 'post',
dataType : 'json',
success : function(jsonCallback)
{
console.log(jsonCallback);
}
});
});
});
然后在我的控制台中,当我单击“idModalCheckbox”时,我有两次我的帖子和两次JsonCallback,当我单击“idCheckBox”时,我只有一次
my html(在php中使用循环生成,其中my idCheckbox是)
<li>
<span hidden id="id"><?=id;?></span>
<span>
<input id="idCheckBox" name="idCheckBox" <?= $checked == true ? 'checked': '';?> data-toggle="toggle" data-onstyle="success" data-offstyle="danger" data-width="60" data-size="small" type="checkbox" data-on="on" data-off="off"/>
</span>
</li>
my2.html(model)(循环使用php生成)
<tr>
<td>
<input id="modalCheckBox" name="modalCheckBox" data-toggle="toggle" data-onstyle="success" data-offstyle="danger" data-width="60" data-size="small" type="checkbox" data-on="on" data-off="off"/>
</td>
</tr>
谢谢你的帮助
最佳答案
您要么绑定事件两次,要么将其绑定到两个都具有该id的元素。