gpt4 book ai didi

javascript - ajax 请求在 knockout js 中发送第二次点击

转载 作者:行者123 更新时间:2023-11-29 14:44:36 24 4
gpt4 key购买 nike

我有下面的knockout js代码..

设计代码

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/2.3.0/knockout-min.js"></script>
<div class="acmenu">
<ul id="accordion" data-bind="foreach: CategoryList">
<li data-bind="click$parent.categorySelected),attr: {iddata.CategoryId},htmldata.CategoryName">
</li>
</ul>
</div>

self.categorySelected = function (selectedCategory, event) {
$('#newproducttitle').hide();
event.preventDefault();
selectCategoryId = selectedCategory.CategoryId();
var refurbishedUrl = "/services/ShopService.asmx/XGetRefurbishedproducts";
$.ajax({
url: refurbishedUrl,
data: JSON.stringify({ ItemID: itemid, categoryid: selectCategoryId, language: lang }),
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {

/******Lines of code**********/

}});
}

此函数在每次点击时调用,但 ajax 请求仅在第二次点击时发送。我需要为第一次点击发送 ajax 请求,有什么解决方案吗....

这里我证明了一个js文件的驱动链接https://onedrive.live.com/redir?resid=143242b617ba6be2!6684&authkey=!AAJQbpV8ZQ7fnGI&ithint=file%2ctxt

最佳答案

虽然我们还没有足够的工作要做,但我认为它也是在第一次请求时调用(除非您已经在开发人员工具等中进行了验证)。它似乎在第二次点击时起作用的原因是 ajax 调用没有返回,而在第二次点击时它似乎起作用了。

试试这个来禁用按钮,直到 ajax 返回:

$.ajax({
url: refurbishedUrl,
data: ...,
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
beforeSend:function(){ $(event.target).prop('disabled', true);},
}).done(function(data){
/*USE THIS INSTEAD OF success*/
}).fail(function(data){
/*USE THIS INSTEAD OF error*/
}).always(function(){
$(event.target).prop('disabled', false);
});

关于javascript - ajax 请求在 knockout js 中发送第二次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34334831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com