我有这个jQuery函数:
$('.bid_btn').click(function(event) {
var doctor_id = $(event.target).val();
console.log(doctor_id);
if(doctor_id == ""){
console.log('nothing here');
} else {
if(!$('input[name="form_doctor_id"]').length){
$form.append($('<input type = "hidden" name = "form_doctor_id">').val(doctor_id));
} else {
if(doctor_id == "Book Appointment"){
console.log('nothing to add here');
} else {
$('input[name="form_doctor_id"]').val(doctor_id);
}
}
}
$(this).unbind(event);
});
它的作用是在点击具有该类的按钮时获取bid_btn类的值,然后将其作为隐藏输入附加到表单。它在Chrome中运行良好,但它在Safari中不起作用,我无法弄清楚原因。我已经在Stack Overflow上阅读了关于此类问题的其他类似问题,但我希望有人能够帮助指出我在jQuery函数中可以解决的问题。
答案 0 :(得分:1)
尝试将event.target
更改为this
。 this
始终引用侦听器附加到的DOM元素,但event.target
是单击的实际DOM元素,例如:
<button class="bid_btn" value="1"> <span> Icon </span> Button </button>
如果您附加了点击监听器:
$('.bid_btn').click(function(event) {...});
单击span
时,将调用处理程序,event.target
是没有value
的span元素。