为什么表单 .submit() 在使用 jQuery 时有效,但在使用 vanilla JS 时无效?
Why does a form .submit() work when using jQuery but not when using vanilla JS?
我正在从我的 JavaScript 中删除所有 jQuery(建议这样做是为了最大限度地提高速度),还有最后一个问题。目标是 运行 提交时的 loadData 函数。
当 运行我的脚本运行时:
$('#form-container').submit(loadData);
但这不是:
clickContainer = document.getElementById('form-container');
clickContainer.addEventListener('submit', loadData());
我如何 运行 我的 loadData 函数与 vanilla JS 中提交的信息?
完整代码@https://github.com/ChaMbuna/Marvel-Map
谢谢!
解决方案: 将函数传递给 Javascript 的问题 addEventListener
传递 addEventListener
函数名称,而不是函数的 return 值。这样做:
clickContainer.addEventListener('submit', loadData);
传递给 addEventListener
您想要在 submit 事件触发时执行的函数的名称。立即将括号附加到函数名称会导致函数被执行,无论函数 returns 被传递给 addEventListener
方法而不是函数本身。
一个例外情况是函数 loadData
实际上 return 编辑了一个函数,而您希望 return 函数在 提交 [=31] 时执行=] 火灾。在那种情况下,你会想要像在 loadData()
中那样执行 loadData
。啊,JavaScript的美女。
我正在从我的 JavaScript 中删除所有 jQuery(建议这样做是为了最大限度地提高速度),还有最后一个问题。目标是 运行 提交时的 loadData 函数。
当 运行我的脚本运行时:
$('#form-container').submit(loadData);
但这不是:
clickContainer = document.getElementById('form-container');
clickContainer.addEventListener('submit', loadData());
我如何 运行 我的 loadData 函数与 vanilla JS 中提交的信息?
完整代码@https://github.com/ChaMbuna/Marvel-Map
谢谢!
解决方案: 将函数传递给 Javascript 的问题 addEventListener
传递 addEventListener
函数名称,而不是函数的 return 值。这样做:
clickContainer.addEventListener('submit', loadData);
传递给 addEventListener
您想要在 submit 事件触发时执行的函数的名称。立即将括号附加到函数名称会导致函数被执行,无论函数 returns 被传递给 addEventListener
方法而不是函数本身。
一个例外情况是函数 loadData
实际上 return 编辑了一个函数,而您希望 return 函数在 提交 [=31] 时执行=] 火灾。在那种情况下,你会想要像在 loadData()
中那样执行 loadData
。啊,JavaScript的美女。