【问题标题】:How to embed a function in a callback function in jQuery?如何在jQuery的回调函数中嵌入一个函数?
【发布时间】:2021-08-12 22:19:55
【问题描述】:

我正在使用 jQuery .load() 将 HTML 文件加载到我的父网页中。我想针对我加载到其中的 HTML 文件从父页面执行 jQuery/JS。我相信我可以通过回调函数做到这一点。

我将这个 jQuery 用于下拉菜单,当在我的下拉菜单中选择一个选项时,我使用它来将这些 HTML 文件加载到 targetPane <div id="targetPane"></div>

jQuery($ => {
    $('#courses').on('change', e => {
        $('#targetPane').load(e.target.value);
        path = (e.target.value);
        $('#targetPane').load('path', function() {
            $('#test').html("20");
        });
    });
});

我使用$('#targetPane').load('path', function(){ 作为我的回调函数,我可以执行$('#test').html("20"); 并更改加载的HTML 文件中的值作为测试。现在我想在回调函数中执行如下代码:

$(function() {
  function getTotal() {
    var total = 0;
    $("input, select").each(function(i, el) {
      if ($(el).is("input:checked")) {
        $($(el).data("rel")).show();
        total += parseInt($(el).val());
      } else {
        $($(el).data("rel")).hide();
      }
      if ($(el).is("select")) {
        if ($(el).val() !== "0") {
          $($(el).data("rel")).html($(el).val()).show();
          total += parseInt($(el).val());
        }
      }
    });
   
    return total;
  }

  $('input[type="checkbox"], select').change(function() {
  
    $("#sum").text(getTotal());
  });
});

...但是您可以从回调函数中调用函数吗?如何针对加载的 HTML 文件执行这么大的代码块 (function getTotal())? path 将返回值 includes/inc_1.html 或类似值。

<select name="myCourses" id="courses">
                    <option value="">Please Select Course</option>
                    <option value="includes/inc_1.html">Item 1</option>
                    <option value="includes/inc_2.html">Item 2</option>
</select>

这是正在加载的 HTML 文件。如果我尝试在 includes/inc.html 文件中添加这么大的 JS 块,我的 total 变量会返回一个 NaN,而不是正确的值。 https://jsfiddle.net/Twisty/hpd415fj/46/ 演示了总数应该如何工作。 任何帮助表示赞赏。 谢谢

【问题讨论】:

  • 很难说你在做什么,但基本问题的答案是,你可以在另一个函数的上下文中调用一个函数;事实上,您自己的代码在多个地方都可以做到这一点。
  • 这个线程stackoverflow.com/questions/68746908/… 阐明了这个问题。 “dom 对象可能不存在”,因为包含 HTML 的文件 (inc_1.html) 被加载到父页面 (index.html) 中,因此需要 api.jquery.com/load 引用的“回调函数”。我想知道这个“回调函数”是否可以专门使用函数(以及语法是什么),而不是像 $('#test').html("20"); 这样的东西

标签: javascript jquery function callback


【解决方案1】:

我学到了回调函数确实可以在里面执行函数。

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 2013-12-17
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多