jquery 1.8.3实时点击事件更改为点击

时间:2013-01-24 14:02:37

标签: javascript jquery

我使用live('click ...使用jQuery v1.8.3但它有效,但我意识到live从第1.7节开始被删除,我应该改为on('click

现在,当用户点击链接时,它什么都不做,下面是jquery / js的副本

仅当您单击a.view_subscriptions链接时才有效。

感谢任何帮助。

$(document).ready(function() {


  function get_month()
  {
    var u = $("#days_for_month_url").attr("href");

    var form_data = {
      ajax : '1'
    };

    $.ajax({
      type: 'POST',
      dataType: 'html',
      url: u,
      data: form_data,
      success: function( msg ) {

        $('#display-month').html(msg);

      } // end success

    }); // end ajax

    return false;
  }

  get_month();

  $("a.view_events").on('click', function(e) {
    e.preventDefault();
    var date = $(this).data('date');

    // change if URL changes
    var u = $("#events_for_day_url").attr("href");

    var form_data = {
      year : $(this).data('year'),
      month : $(this).data('month'),
      day : $(this).data('day'),
      date : $(this).data('date'),
      ajax : '1'
    };

    $.ajax({
      type: 'POST',
      dataType: 'html',
      url: u,
      data: form_data,
      success: function( msg ) {

        $('#display-events').html(msg);
        $('#display-event_detail').html('');

      } // end success

    }); // end ajax

    return false;

  }); // end on.click view-events


  $("a.view_event_details").on('click', function(e) {
    e.preventDefault();
    var u = $("#event_detail_url").attr("href");

    var form_data = {
      event_id : $(this).data('event_id'),
      ajax : '1'
    };

    $.ajax({
      type: 'POST',
      dataType: 'html',
      url: u,
      data: form_data,
      success: function( msg ) {

        $('#display-event_detail').html(msg);
        $('#display-events').html('');

      } // end success

    }); // end ajax

    return false;

  }); // end on.click view_event_details


  $("a.month_link").on('click', function(e) {
    e.preventDefault();
    $('#display-events').html('');

    var u = $("#days_for_month_url").attr("href");

    var form_data = {
      month_url : $(this).data('month_url'),
      ajax : '1'
    };

    $.ajax({
      type: 'POST',
      dataType: 'html',
      url: u,
      data: form_data,
      success: function( msg ) {

        $('#display-month').html(msg);

      } // end success

    }); // end ajax

    return false;

  }); // end on.click view-month

 $("a.view_subscriptions").on('click', function(e) {
    e.preventDefault();
    var u = $("#subscriptions_url").attr("href");

    var form_data = {
      ajax : '1'
    };

    $.ajax({
      type: 'POST',
      dataType: 'html',
      url: u,
      data: form_data,
      success: function( msg ) {

        $('#display-subscriptions').html(msg);
        //$('#display-subscriptions').toggle();

      } // end success

    }); // end ajax

    return false;

  }); // end on.click view-subscriptions

 $("#update_subscriptions").on('click', function(e) {
    e.preventDefault();
    var u = $("#update_subscriptions_url").attr("href");

    var vals = []
    $('input:checkbox[name="calendar[]"]').each(function() {
        if (this.checked) {
            vals.push(this.value);
        }
    });

    var form_data = {
      ajax : '1',
      calendar: vals,
    };

    $.ajax({
      type: 'POST',
      dataType: 'html',
      url: u,
      data: form_data,
      success: function( msg ) {

        get_month();
        $('#display-subscriptions-update').html(msg).fadeOut(6000);
        $('#display-subscriptions').html('');

      } // end success

    }); // end ajax

    return false;

  }); // end on.click view-subscriptions

}); // end document ready

1 个答案:

答案 0 :(得分:7)

这不仅仅是对函数名称的更改。绑定是立即的,仅涉及绑定时jQuery集中的元素。作为参数传递动态元素的选择器。

而不是

 $("a.view_events").on('click', function(e) {

使用

  $(document).on('click', "a.view_events", function(e) {

(或者更好的是,将[{1}}替换为调用该函数时存在的元素,并保留document个元素)