我在页面中声明了以下HTML:
<select class="js-basket-qty basketProduct__quantity basketProduct__dropdown">
<option value="1">1</option> …
</select>
选项值转到10。更改值时,select语句上的类触发许多事件。
这些事件都按预期工作,但没有发生的是所选内容中的文本没有保留。
例如默认情况下,select中设置为1。然后,从下拉列表中选择3。
被触发的事件使用了3个get,一瞬间,我在选择器文本框中看到3。但是,到完成时,它会再次显示1而不是按住3。
因此,在事件结束时,我尝试使用$('.basketProduct__dropdown').val(qty.toString());
在我的函数顶部,我有:
var basketItem = getBasketItem($(event.currentTarget)),
qty = parseInt(basketItem.find('.js-basket-qty').val(),10);
……
….
ajaxUpdateBasket({
….}).done(render);
$('.basketProduct__dropdown').val(qty.toString());
答案 0 :(得分:0)
您的ajaxUpdateBasket
方法可能是asynchronous
,因此您需要在select
函数的末尾设置render
值。像这样:
var basketItem = getBasketItem($(event.currentTarget)),
qty = parseInt(basketItem.find('.js-basket-qty').val(),10);
……
….
ajaxUpdateBasket({
….}).done(render);
function render(){
...some stuff
$('.basketProduct__dropdown').val(qty.toString());
}
请注意,您需要确保qty
内部可以访问render()