我想简单描述一下我的情况。
第1步:我想在每次点击某个div后将变量“count”增加1。
第二步:我想对我的其他函数使用更新的“count”,其中我从select元素中复制值,其id属性包含在其id结尾处更新的“count”到输入元素,其中id属性也包含更新的“count” “在其身份的最后。
问题:更新的“count”在函数内部顺利运行,我将值从select复制到输入,但不是在我使用bind()的第一个#id选择器中。这里,“计数”保持不变为“0”。它导致正确输入元素的值仍由错误的select元素更新,其id为“0”。
有人可以告诉我如何使用我的变量来解决这种情况吗?
$(document).ready(function () {
var count= 0;
$("#clickBtn").on("click", function (event) {
event.preventDefault();
var textBox = document.getElementById("text");
textBox.value = count;
count++;
});
$('#selectElmnt' + count).bind('change click keyup', function () {
$('#inputElmnt' + count).val($(this).val());
});
});
答案 0 :(得分:1)
$("#clickBtn").on("click", function (event)
和$('#selectElmnt' + count).bind
函数都在页面加载时运行($(document).ready(
),此时count
的值为零
我不太清楚你想用第二个功能实现什么 - 如果你想将一个更改/点击/键盘事件绑定到具有各种ID的所有选择,你可以在开始时这样做如果您想根据当前计数触发某些内容,则需要在单击回调中执行此操作。
例如,如果要将值从select1复制到input1,请选择2到input2,然后您不必担心计数。为此,您可以将计数添加为数据元素并添加一个类,以提供如下标记:
<select id="selectElmnt1" class="selectElmnt" data-count="1">...</select>
<select id="selectElmnt2" class="selectElmnt" data-count="2">...</select>
<select id="selectElmnt3" class="selectElmnt" data-count="3">...</select>
然后使用以下javascript:
$(document).ready(function () {
var count= 0;
$("#clickBtn").on("click", function (event) {
event.preventDefault();
var textBox = document.getElementById("text");
textBox.value = count;
count++;
});
$('.selectElmnt').on('change click keyup', function () {
var count_id = $(this).data('count');
$('#inputElmnt' + count_id).val($(this).val());
});
});
但是,如果您想根据按钮触发某些内容,则需要以下内容:
$(document).ready(function () {
var count= 0;
$("#clickBtn").on("click", function (event) {
event.preventDefault();
var textBox = document.getElementById("text");
textBox.value = count;
count++;
// Trigger stuff here. probably not bind, maybe just copy value now?
$('#inputElmnt' + count_id).val( $('.selectElmnt' + count).val() );
});
});