如何从jquery中准备好的文档中调用ajaxComplete内部的函数?

时间:2018-07-27 06:27:16

标签: javascript php jquery html wordpress

我想从文档就绪开始在.ajaxComplete()内部执行功能。

$(function() {

      $(document).on('click', '.woof_radio_label', function(e) {
        if($(this).siblings('.woof_radio_term').is(':checked')) {
          $('.page-secondary-content').removeClass('open');
          $('.page-primary-content').removeClass('close');

          $(this).siblings('.woof_radio_term_reset').click();

          refineUrl();

        } else {
          $('.page-primary-content').addClass('close');
          $('.page-secondary-content, .bottom-content').addClass('open');
        }
      });

});

$(document).ajaxComplete(function() {
  function refineUrl() {
   console.log('it works');
  }
}); 

系统提示我以下错误:

  

未捕获的ReferenceError:未定义FineUrl       在HTMLLabelElement。 (scripts-custom.js?ver = 4.9.7:15)       在HTMLDocument.dispatch(jquery.js?ver = 1.12.4:3)       在HTMLDocument.r.handle(jquery.js?ver = 1.12.4:3)

当我单击类 woof_radio_label 时,它将触发ajax事件(产品过滤器),我想在ajaxComplete()上调用函数。

你知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

您应该全局声明函数refineUrl(),然后可以从任何地方调用它。也来自ajaxCompletedocument.ready

赞:

$(function () {
    $(document).on('click', '.woof_radio_label', function (e) {
        if ($(this).siblings('.woof_radio_term').is(':checked')) {
            $('.page-secondary-content').removeClass('open');
            $('.page-primary-content').removeClass('close');

            $(this).siblings('.woof_radio_term_reset').click();

            refineUrl();

        } else {
            $('.page-primary-content').addClass('close');
            $('.page-secondary-content, .bottom-content').addClass('open');
        }
    });

});

$(document).ajaxComplete(function () {
    //DO another stuff
});
function refineUrl() {
    console.log('it works');
}

答案 1 :(得分:1)

在脚本顶部声明refineUrl(),以防止发生此类错误,

function refineUrl() {
    console.log('it works');
}
$(function(){
     .....
});
$(document).ajaxComplete(function() {
   refineUrl(); 
});