我刚刚从jquery 1.5.2升级到1.10.2。 我将所有.live()调用更改为.on()。但由于某种原因,一个特定的按钮不再工作。 这是逻辑:
$("#add_to_rule").on("click", function() {
console.log('inside add');
//only add if no validation errors.
if ( ($('#contact_details').val().length == 0) ) {
$('#validation_error').html("There is no information to add");
return false;
}
var emess = $("#validation_error").text();
if ( emess.length == 0 ) {
add_routing_entry();
update_call_routing_tag();
}
});
它从不在控制台中打印“内部添加”消息。 从控制台窗口,我已经测试以确保元素存在并返回正确的值。以下是我在控制台内进行测试的一些结果:
$('#add_to_rule').val();
"Add to Rule"
$('#add_to_rule').on("click");
<input id="add_to_rule" type="button" class="submit" value="Add to Rule">
我还尝试从控制台窗口更改按钮上的值作为测试:
$('#add_to_rule').val("test");
[
<input id="add_to_rule" type="button" class="submit" value="test">
]
它会更新我按钮上的文字。
最后,为了它的价值,我通过添加以下行来删除它正在拾取的jquery库的版本:
console.log(jQuery.fn.jquery);
打印1.10.2。
对于我可能做错的任何建议都将不胜感激。 感谢。
答案 0 :(得分:4)
将它绑定到最近的静态父元素,使用这样的事件委托来动态添加元素:
$(document).on("click","#add_to_rule", function() {