javascript - 基于另一个 javascript 文件定义带参数的函数

标签 javascript html

我有一些带有参数的常见js函数,我将重用它们,所以我想,我创建另一个js文件并将公共(public)代码存储在这里,在目标html中我用参数定义这些函数,如果调用这些函数,然后它们被执行。

我在一个单独的js文件中有这个通用函数:

function add_onClick(url) {
    $.ajax({
        url: url,
    }).done(function (response) {
        var popup = $("#entity-popup").dxPopup("instance");
        popup.option("contentTemplate", function (content) {
            content.append(response);
        });
        popup.show();
    });
}

如果我在目标 html 中定义该函数,如下所示:

var add_onClick = add_onClick('/MasterData/Sender/NewSender')

然后该函数在每次页面加载时执行,而不是在按钮单击时执行。

如果我这样定义函数:

var add_onClick = function () { add_onClick('/MasterData/Sender/NewSender'); };

然后我收到错误“超出了 JavaScript 最大调用堆栈大小”。

我应该如何在目标 html 中定义该函数,以便仅在用户单击添加按钮时执行?

无法解释的额外请求:

enter image description here

编辑:

/MasterData/Sender/NewSender 的目标是一个操作,该操作返回一个带有新 Sender 对象的 View ,如下所示:

public IActionResult NewSender()
    {
        ViewBag.Mode = "new";
        Sender Sender = new Sender();
        return PartialView("Sender", Sender);
    }

我想,这应该是网络窗口中额外的流量。但如果 add_onClick 函数不在单独的文件中,我就不会得到这一行。

最佳答案

var add_onClick = function () { add_onClick('/MasterData/Sender/NewSender'); };

这是一个无限循环。它只是不断地调用自己。

也许像这样?

document.getElementById('myButton').addEventListener('click', () => {
  add_onClick('/MasterData/Sender/NewSender')
})

<button id="myButton">Click me</button>

关于javascript - 基于另一个 javascript 文件定义带参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61402796/

相关文章:

javascript - D3 没有在具有多个值的 enter() 数据上创建 DIV

javascript - 我可以在网站上使用没有 ionic 的 ionic 组件吗?

javascript - 不变违规 : View config not found for name div

javascript - 如何使用 Struts 中的属性名称通过 JavaScript 动态创建 HTML?

html - Css 图片路径错误 (ERR_FILE_NOT_FOUND)

php - 使用 php、mysql 和 html 创建登录表单但无法登录

HTML header 的宽度不正确

javascript - 渲染后 Backbone 添加更多事件?

html - 柔性 : how to align the content of 2 rows to each other (same width)

html - 简单字体不变