我还是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;
我的想法是伪代码:
我的想法有什么问题?
注意:我没有包含任何html标签,但所有ID都被正确引用
答案 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);
});
答案 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);
}
});
});
您使用&
代替$
。当然,您不必像我一样格式化代码。