jQuery 嵌套函数

jQuery nested functions

本文关键字:函数 嵌套 jQuery      更新时间:2023-09-26

我仍然是JavaScript和jQuery的新手,所以我对为什么下面的代码没有像我预期的那样工作感到困惑。 我要做的就是在按钮单击(id=recordInput)时保存输入,然后用另一个按钮单击(id=displayInput)显示它。 我观察到的是存储了tempInput(代码一直工作到那时),但 displayInputs onclick 属性的分配没有执行。 我的问题是,您不能将$().click()呼叫嵌套在另一个&().click()调用中吗?

<script>
$(document).ready(function () {
    $('#recordInput').click(function(event) {
        var tempInput = $('#testInput').val();
        &('#displayInput').click(function(event) {
            console.log(tempInput);
        });
    });
});
</script>

我的想法是伪代码:

  1. 将记录输入单击时属性分配给以下函数:
  2. 存储临时输入
  3. 设置显示输入单击以提醒临时输入值

我的想法有什么问题?

注意:我没有包含任何 html 标签,但所有 id 都正确引用

不起作用,因为您在此处放置了&而不是$

$('#displayInput').click(function(event) {

修复此问题可能有效,但不应以这种方式设置事件处理程序。因为每次调用第一个处理程序函数时,它都会为第二个处理程序设置一个事件处理程序。您可以尝试使用console.log,您会发现每次单击console.log的数量都在增加 #recordInput .所以你最好这样设置它:

var tempInput;
$('#recordInput').click(function(event) {
    tempInput = $('#testInput').val();
});
$('#displayInput').click(function(event) {
    console.log(tempInput);
});

我会改变

$(document).ready(function () {
    $('#recordInput').click(function(event) {
        var tempInput = $('#testInput').val();
        &('#displayInput').click(function(event) {
            console.log(tempInput);
        });
    });
});

$(function(){
var testInput = '';
$('#recordInput').click(function(){
  testInput = $('#testInput').val();
});
$('#displayInput').click(function(){
  if(testInput !== ''){
    console.log(testInput);
  }
});
});

您使用的是&而不是$。当然,您不必像我一样格式化代码。