2016-01-22 161 views
0

我还是JavaScript和jQuery的新手,所以我很困惑为什么下面的代码不能按我的预期工作。我所要做的就是将输入保存在单击按钮(id=recordInput)上并用另一个按钮单击(id=displayInput)显示。我观察到的是tempInput存储,(代码工作,直到那一点),但不执行displayInputs onclick属性的分配。我的问题是,您是否可以在另一个&().click()调用中嵌入$().click()调用?jQuery嵌套函数

<script> 
 
$(document).ready(function() { 
 

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

 
</script>

我的想法是这样的伪代码:

  1. 分配recordInput onclick属性以下功能:
  2. 店tempInput
  3. 集displayInput的onclick提醒tempInput价值

我的想法有什么问题?

注:我并没有包括任何HTML标签,但所有的ID都被正确引用

$(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); 
    } 
}); 

}); 

您正在使用&代替$

+0

你是不是指$('#displayInput')? –

+2

用嵌套的''替换'&'。 –

+0

如上所述,您使用'&'而不是'$'。发布前请检查您的控制台。 –

回答

0

我会改变。当然,您不必像我那样完全格式化代码。

1

它不工作,因为你已经把&而不是$这里

$('#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); 
});