jQuery嵌套函数

时间:2016-01-22 00:47:38

标签: javascript jquery html

我还是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>
&#13;
&#13;
&#13;

我的想法是伪代码:

  1. 将recordInput onclick属性分配给以下函数:
  2. 存储tempInput
  3. 设置displayInput onclick以警告tempInput值
  4. 我的想法有什么问题?

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

2 个答案:

答案 0 :(得分:1)

它无法正常工作,因为您已将&代替$

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

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

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

答案 1 :(得分:0)

我会改变

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

});

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