javascript - TypeError t.apply 不是函数
问题描述
我正在使用 mockapi 并动态设置 css 动画,API 工作正常但无法设置其值,即我已将该 API 响应存储在变量中并将其传递给 jquery 每个函数,但它不工作并抛出这个错误t.apply is not a function
。我无法理解我在这里做错了什么
有人可以帮忙吗???。
var BASE_URL = 'https://demo8806967.mockable.io/alphaindustries/reviews';
fetch(BASE_URL)
.then(function(response){
return response.json();
console.log('response in review>>',response.json());
})
.then(function(data){
console.log('data>>',data);
var productReview = data.MLA21019P1,
customQuestionsObject = data.MLA21019P1.customQuestions;
$(".track").each(productReview,function(key,value) {
console.log('key and value',{
key:key,
value:value
})
var $el = $(this),
$bar = $el.find(".bar"),
leftPercent = $bar.attr("data-leftPercent");
$bar.css({ left: 0 }).animate({
left: value
}, 1500);
});
})
.catch(function(err){
console.log('error>>>>',err);
})
<div class = 'inner'>
<hr>
<div id="PDP_ProductReviews" class="product-reviews">
<header class="inline col-md-offset-1">
<h1>Reviews</h1>
<p>
<span>Ratings based on 32 user reviews.</span>
<a class="action-addReview" href="#">Add your Review</a>
</p>
</header>
<div class="row tc-mt-3">
<div class="review-item col-md-5 col-md-offset-1">
<h3>Size <span class="active">True to Size</span></h3>
<div class="ui-range">
<div class="track">
<div class="bar" style="left: 45%"></div>
</div>
<span class="left">Runs Small</span>
<span class="right">Runs Large</span>
</div> </div>
<div class="review-item col-md-5">
<h3>Comfort <span class="active">Very Comfortable</span></h3>
<div class="ui-range">
<div class="track">
<div class="bar" style="left: 80%"></div>
</div>
<span class="left">Uncomfortable</span>
<span class="right">Very Comfortable</span>
</div> </div>
</div>
<div class="row tc-mt-5">
<div class="review-item col-md-5 col-md-offset-1">
<h3>Fit <span class="active">Slightly Loose</span></h3>
<div class="ui-range">
<div class="track">
<div class="bar" style="left: 60%"></div>
</div>
<span class="left">Runs Tight</span>
<span class="right">Runs Loose</span>
</div> </div>
<div class="review-item col-md-5">
<h3>Durability <span class="active">Very Durable</span></h3>
<div class="ui-range">
<div class="track">
<div class="bar" style="left: 65%"></div>
</div>
<span class="left">Non-Durable</span>
<span class="right">Durable</span>
</div> </div>
</div>
</div>
</div>
解决方案
您没有each
正确使用该方法。如果您想迭代对象对,您应该不像您在示例中那样key/value
调用它。$.each(...)
$(".track").each(...)
如果我正确理解您要达到的目标,请尝试以下操作:
$.each(productReview, function(key,value) {
var $el = $(".track"),
$bar = $el.find(".bar"),
leftPercent = $bar.attr("data-leftPercent");
$bar.css({ left: 0 }).animate({
left: value
}, 1500);
});
推荐阅读
- ios - Swift 4.2 - 如何从 tableView 中的“didSelectRowAtIndexPath”方法调用“indexPath.row”到另一个类?
- objective-c - AudioKit:如何在 Objective-C 中使用 AKPlayer playAt 方法?
- python - 使用 keras 训练多个 csv 文件
- javascript - 为什么我不能使用 AngularJS 打印输入类型的值?
- angularjs - 获取Controller Scope后如何获取$sce
- c# - 使用列表 IndexOf 时未设置 Combobox SelectedIndex
- django - 如何在 django 中获取 webpack 文件?
- c# - 我可以在 ASP.NET 和 C# 的 Web 应用程序中嵌入程序的输出吗
- octave - 如何防止 Octave 对行向量和列向量求和?
- css - 在 Angular 7 中使用 PrimeNG 的 flexgrid 没有任何效果