在尚未加载的不同按钮上调用相同的功能

时间:2012-11-11 22:47:25

标签: javascript jquery html ajax

我无法让每个按钮都能正常工作,我无法找到解释原因的任何内容。我猜这是我想念的小事

$(document).ready(function() {
  // delete the selected row from the database
  $(document).on('click', '#business-area-delete-button', { model: "BusinessArea" }, deleteRow);
  $(document).on('click', '#business-type-delete-button', { model: "BusinessType" }, deleteRow);
  $(document).on('click', '#client-delete-button', { model: "Client" }, deleteRow);
  $(document).on('click', '#client-type-delete-button', { model: "ClientType" }, deleteRow);
  $(document).on('click', '#communication-channel-type', { model: "CommunicationChannelType" }, deleteRow);
  $(document).on('click', '#parameter-type-delete-button', { model: "ParameterType" }, deleteRow);
  $(document).on('click', '#validation-method-delete-button', { model: "ValidationMethod" }, deleteRow);
}

事件

function deleteRow(event){
  $.ajax(
    {
      type:'POST',
      data: { id: $(".delete-row").attr("id") },
      url:"/mysite/admin/delete" + event.data.model,
      success:function(data,textStatus){
        $('#main-content').html(data);
      },
      error:function(XMLHttpRequest,textStatus,errorThrown){
       jQuery('#alerts').html(XMLHttpRequest.responseText);
      },
      complete:function(XMLHttpRequest,textStatus){
        placeAlerts()
      }
    }
   );
   return false
};

这仅适用于带有id validation-method-delete-button的按钮。我使用文档而不是自己的按钮,因为按钮包含在稍后通过ajax加载的模板中。

我有一个类似于在表中选择行的函数,但是我没有尝试在该场景中传递数据。

2 个答案:

答案 0 :(得分:1)

如果您的按钮尚未加载,请尝试使用live代替on

答案 1 :(得分:0)

我怀疑这是非常小的事情。打错音!大声笑。无论哪种方式都可以保持这种建设性,因为我相信其他人可能遇到同样的问题。

所以

live()是否更好用于on()(它们都有效)。