Как запретить Jquery запускать событие onclick, пока html отображает html таблицу с кнопками.
Эти кнопки должны присутствовать, что inturns вызывает backend API по причинам обновления.
Кроме того, refreshUser () должен запускаться вручную при нажатии кнопки обновления.
jqueryfile.js
$(document).ready(function () {
refreshUser = function (userId) {
$.ajax({
url: "/services/svcCall/refreshUserDetails",
type: 'POST',
data: {format: 'json', userId: userId},
success: function (response) {
$('#userDetails-result').html("Refreshed completed.");
},
error: function () {
$('#userDetails-result').html("<p>There was an error processing your request. Please try again.</p>");
}
});
};
$('#userDetails-search').click(function () {
$('#userDetails-search').html("Fetching ...");
$.ajax({
url: "/services/svcCall/allUserDetails",
type: 'POST',
data: {format: 'json'},
success: function (response) {
var length = response.length;
var outerString = '<br><br><table border = 2>';
outerString += "<tr><td> UserDetails size present: " + length + "</td></tr>";
var innerString = '<tr><td><table border = 1>';
for (var i = 0; i < length; i++) {
innerString += "<tr>"
+ "<td> JSON:" + JSON.stringify(response[i]) + "</td>"
+ "<td> <input type=\"button\" onclick=\"" + refreshUser(response[i].userId) + "\" value=\" Refresh \"> </td></tr>";
}
innerString += "</table></td></tr>";
outerString = outerString + innerString + "</table>";
$('#userDetails-search').html(outerString);
},
error: function () {
$('#userDetails-search').html("<p>There was an error processing your request. Please try again.</p>");
}
});
});
});
HTML-файл
<table>
<tr><td><button id="userDetails-search">Find me all User Details</button></td></tr>
<tr><td><section id="userDetails-search"> </section></td>
<td><section id="userDetails-result"></section></td></tr>
</table>