确认取消后如何防止进一步的jquery脚本

时间:2019-07-05 18:26:06

标签: jquery confirm

我有一个脚本,当单击链接时会打开一个确认框:

html:

<a href="validation/object_1/" class="validation">Validate</a>
<a href="validation/object_2/" class="validation">Validate</a>

jquery

$('.validation').on('click', function() {
  return confirm('Are you sure tou want to validate this ' + $(this).attr('href').split("/")[1] + ' ?');
});

我还有另一个jquery脚本,可以加载等待的动画(这是一个非常复杂的脚本,我自己没有编写代码,并且包含在我的内容管理系统应用程序中)

当我单击链接时,将弹出确认对话框,而当我单击“取消”时,我不希望运行等待的动画。

如何在单击“取消”后阻止进一步的jquery脚本运行?

编辑:这是完整的脚本,带有加载动画:

    (function($) {

        $('.validation').on('click', function() {
  return confirm('Are you sure tou want to validate this ' + $(this).attr('href').split("/")[1] + ' ?');
});

    /**
       * Represents the loading animation.
       */
      Loadinganimation = function(context, settings) {
        this.settings = settings;
        this._init = function(context) {
          // Exclude subselectors.
          if (settings.subselector != '') {
            var subselectorSuffix = ' ' + settings.subselector;
          } else {
            var subselectorSuffix = '';
          }
          // Show on href click!
          if (Drupal.settings.jquery_loadinganimation.show_on_href) {
            // Exclude some further cases that shell not trigger.
            $(context)
                .find("a[href]" + settings.subselector)
                .not('a[href*="javascript:"]')
                .not('a[href^="#"]')
                //.not('a[target="_blank"]')
                .not(".validation")
            .not('a[href^="http://fdrav.sncf.fr/system/files"]')
                .not(".noLoadingAnimation")
            .not(".views-submit-button")
                .each(
                    function(i, element) {
                      // Only trigger links that have no js events registered.
                      if (typeof $(this).data("events") == 'undefined'
                          || jQuery.isEmptyObject($(this).data("events"))) {
                        $(this)
                            .click(
                                function(eventObject) {
                                  // Nicht bei Öffnen in neuem Tab (Strg+Klick)
                                  if (!eventObject.ctrlKey) {
                                    Drupal.behaviors.jquery_loadinganimation.Loadinganimation
                                        .show();
                                  }
                                });
                      }
                    });
          }

          // Show on form submit
          if (Drupal.settings.jquery_loadinganimation.show_on_form_submit) {
            // Only execute if no other js events are registered to prevent cases
            // where page is not being reloaded and layer does not close though.
            $(context).find("form" + subselectorSuffix).not(".noLoadingAnimation").not(".views-submit-button").not(".validation").submit(function() {
              Drupal.behaviors.jquery_loadinganimation.Loadinganimation.show();
              $(context).ajaxStop(function() {
                // Hide loading animation after ALL ajax events have finished
                Drupal.behaviors.jquery_loadinganimation.Loadinganimation.hide();
              });
            });
          }

          // Show on AJAX
          if (context == document) {
            // Global context!
            if (Drupal.settings.jquery_loadinganimation.show_on_ajax) {
              // Register loading animations for ajax events!
              $(context).ajaxStart(function() {
                // Show loading animation on request.
                Drupal.behaviors.jquery_loadinganimation.Loadinganimation.show();
              });

              $(context).ajaxStop(function() {
                // Hide loading animation after finish.
                Drupal.behaviors.jquery_loadinganimation.Loadinganimation.hide();
              });
            }
          }

          // Hide on animation click!
          if (Drupal.settings.jquery_loadinganimation.close_on_click) {
            $("div#loadinganimation").on('click', function() {
              Drupal.behaviors.jquery_loadinganimation.Loadinganimation.hide();
            });
          }

          // Hide on ESC press.
          if (Drupal.settings.jquery_loadinganimation.close_on_esc) {
            $(document).keyup(function(event) {
              var keycode = event.which;
              if (keycode == 27) { // escape, close box
                Drupal.behaviors.jquery_loadinganimation.Loadinganimation.hide();
              }
            });
          }
        };

        // Initialize!
        this._init(context);

        // Register global Drupal.behaviors.jquery_loadinganimation.Loadinganimation
        // object after init!
        Drupal.behaviors.jquery_loadinganimation.Loadinganimation = this;

        /**
         * Displays the loading animation.
         */
        this.show = function() {
          // Only show if not already shown.
          if ($("div#loadinganimation").length == 0) {
            $("body")
                .append(
                    '<div id="loadinganimation"><div class="loadinganimation-box"><div class="loadinganimation-outer"><div class="loadinganimation-inner">&nbsp;</div></div><span class="loading-text">'+ Drupal.t('Merci de patienter ...', {}, {context: "jquery_loadinganimation"}) +'</span></div></div>');
          }
        };

        /**
         * Hides the loading animation.
         */
        this.hide = function() {
          $("div#loadinganimation").remove();
        };
      };

      /**
       * Initialization
       */
      Drupal.behaviors.jquery_loadinganimation = {
        /**
         * Run Drupal module JS initialization.
         *
         * @param context
         * @param settings
         */
        attach : function(context, settings) {
          // Initialize general loading animation.
          Drupal.behaviors.jquery_loadinganimation.Loadinganimation = new Loadinganimation(
              context, settings.jquery_loadinganimation);
        }
      };


    })(jQuery);

1 个答案:

答案 0 :(得分:1)

类似这样的事情。并将“ tou”更改为“ you”。

Date  Category  x1   x2
Jan 1    A      15    8
Jan 2    A      42   27
Jan 2    B      21   11