一直致力于一个小项目。出于某种原因,有时我的Ajax / JQuery函数不会执行。
例如,我有一个按钮,一旦你点击它,就会从员工姓名的SQL生成一个自动选择/选项列表。我正在设置它:
$("#search_prospects_image").one('click', function() {
var blankData;
$.post('get_prospects.php', blankData, processData);
function processData(data) {
var prospect_names = JSON.parse(data);
var select = document.getElementById("search_prospects_image");
for (var i = 0; i < prospect_names.length; ++i) {
var option = document.createElement("option");
option.text = prospect_names[i];
option.value = prospect_names[i];
select.appendChild(option);
}
}
});
有时,当我单击按钮并尝试选择一个选项时,它不会列出任何内容。我需要刷新页面,或者点击其他内容,然后再回到它。
我无论如何都不是专家 - 相当新的,所以如果我做错了,我也不会感到惊讶。
如果任何人都可以看到任何可能会减慢这些呼叫的速度,或者有时会让他们失败,我很想知道!谢谢!
答案 0 :(得分:3)
您正在使用one()
:
所以它只会在第一次点击时触发。
您可能需要on()
Description: Attach an event handler function for one or more events to the selected elements
所以它会在每次点击时执行调用。
至于你的代码;我只想反映一个变化:
$("#search_prospects_image").on('click', function() {
var blankData;
$.post('get_prospects.php', blankData, processData);
function processData(data) {
var prospect_names = JSON.parse(data);
var select = document.getElementById("search_prospects_image");
for (var i = 0; i < prospect_names.length; ++i) {
var option = document.createElement("option");
option.text = prospect_names[i];
option.value = prospect_names[i];
select.appendChild(option);
}
}
});