2017-02-25 65 views
0

我正在尝试为屏幕数字键创建一个简单的数学测验应用程序,该数字键将附加到输入字段以获取答案。我想使用链接到类的jQuery事件侦听器,所以我不必为每个数字调用onClick函数。我在其他地方发现了这个问题,但我无法发表评论,因为我刚刚加入了堆栈溢出,并且声明我的声誉不够高,因此无法进一步询问问题。将值附加到JQuery脚本中的输入字段

链接到的其他问题:append value to an input field in JQuery

当我尝试添加我得到一个不确定的,当我尝试单击我的按钮,我不能看到我的代码误差。任何援助将不胜感激。

我的jQuery:

$(".userIn").click(function() { 
    var usrIn = $(this).data('usrIn'); 
    $("#answer").val(function() { 
    return this.value + usrIn; 
    }); 
}); 

我的按钮的示例:

<button type="button" class="btn btn-primary btn-block userIn" data-number="0" id="zero">0</button> 

这里是JSfiddle所有我的链接样式表和外部JS。

回答

3

变化var usrIn = $(this).data('usrIn');var usrIn = $(this).attr('data-number');

小提琴:https://jsfiddle.net/969r1gp0/4/

+0

非常感谢。一旦我将我的函数移动到我的js的document.ready部分,它也开始在浏览器中工作。 – KReth

1

你的数据属性称为data-number,不data-userin,所以你应该写:

var usrIn = $(this).data('number') 

但是,随着按钮的文字真的是你想添加什么,你可以不用数据属性,只需要做:

var usrIn = $(this).text(); 
+0

谢谢!我尝试了这一点,它仍然没有在我的代码工作,直到我意识到它不是在浏览器工作,但它是在小提琴工作。一旦我将它移入我的$(document).ready部分,它就开始工作。我将使用我标记为已回答的其他解决方案,但是想要感谢您,因为我测试了您的两个解决方案,并且他们也为我工作。 – KReth

+0

注意:jsfiddle会自动执行此操作(将脚本放入加载函数中)。这是一个可以更改的设置,但默认情况下就是这样。 – trincot