javascript - 使用参数触发jQuery中的事件
问题描述
我正在使用该django-autocomplete-light
库ModelSelect2
在我的表单中有一个字段。我需要从外部更改当前选定的项目。该库具有以下代码来处理select2:selecting
事件。
document.addEventListener('dal-init-function', function () {
...
yl.registerFunction( 'select2', function ($, element) {
$element.on('select2:selecting', function (e) {
var data = e.params.args.data;
if (data.create_id !== true)
return;
e.preventDefault();
...
我开发了以下行来触发事件:
params = {
"params": {
"args": {
"data": {
id: "324856",
selected_text: "ABERTAMY (Karlovy Vary)",
text: "ABERTAMY (Karlovy Vary)"
}
}
}
};
$( "#id_hlavni_katastr" ).trigger( "select2:selecting", params )
但是,参数没有传递,我搜索了整个e
变量而没有找到数据。如何更新触发事件,使其正确传递参数。
解决方案
而不是$element.on('select2:selecting', function (e) { ... }
,您可以将其替换为$element.on('select2:selecting', function (e, customParrams) { ... }
。使用该trigger
方法时传递的参数将填充到customParrams
变量中。这是一个例子:
$('input').on('click', function (e, customParams) {
console.log(customParams.params.args.data);
});
var params = {
"params": {
"args": {
"data": {
id: "324856",
selected_text: "ABERTAMY (Karlovy Vary)",
text: "ABERTAMY (Karlovy Vary)"
}
}
}
};
$('input').trigger('click', params);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="hidden">
有关更多示例,您可以访问下一页上的 jQuery文档。
推荐阅读
- pip - Win10 Pro pywinauto 安装失败
- css - 涉及标点符号时如何设置 DROP CAP 样式
- javascript - NextJS - 构建不起作用,但开发模式可以
- windows - 无法在 %APPDATA%\postgresql 目录中创建或修改 pgpass.conf 文件
- python - 嵌套循环问题___>
- sql-server - 是否可以在不使用 SQLServer 上的 Kerberos 身份验证的情况下从 Linux 服务器执行无密码身份验证?
- node.js - 向 Keycloak 请求获取 jwt 发送 autorizathion 代码时出错
- python-3.x - 找不到名为 Snowflake 的模块
- ruby-on-rails - 优化问题,显示给定选择集合的剩余选项的最大数量
- html - 沿 Z 方向倾斜 HTML 元素