jQuery函数用于在Chrome中附加输入以形成作品,但不支持Safari

时间:2016-07-23 19:47:24

标签: javascript jquery html

我有这个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函数中可以解决的问题。

1 个答案:

答案 0 :(得分:1)

尝试将event.target更改为thisthis始终引用侦听器附加到的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元素。