【发布时间】:2017-07-06 21:06:36
【问题描述】:
我有两个视图页面。在这两页上,我都有一个项目列表,旁边有一张星星的图片。在第一页,我可以点击星星,它会变成蓝色或灰色。在第二页上,如果星星是蓝色的,我点击它,我想删除与之关联的父 div。当我重新加载整个页面时它会删除它,但不会立即删除它。如何在不点击重新加载按钮的情况下立即将其从页面中删除?
这是在我要删除父 div 的 result.html.erb 中。需要明确的是,当我单击与钻石 div 关联的星时,我想删除整个 div 并单独保留珍珠 div。
<div id="result">
<div class="diamond">
<a target="_blank" href="www.website.com">diamond</a>
<img class="star-pic" src="/assets/star-blue.png" alt="star pic">
</div>
<div class="pearl">
<a target="_blank" href="www.website.com">pearl</a>
<img class="star-pic" src="/assets/star-blue.png" alt="star pic">
</div>
</div>
这是在我的 application.js 中
var favoriteGems = JSON.parse(localStorage.getItem("gems")) || []
function changeStar(){
if($(this).attr("src") == "/assets/star-gray.png"){
$(this).attr("src", "/assets/star-blue.png")
favoriteGems.push($(this).closest("div").first().text().replace(/\s+/g, ''))
localStorage.setItem("gems", JSON.stringify(favoriteGems))
}
else if ($(this).attr("src") == "/assets/star-blue.png"){
$(this).attr("src", "/assets/star-gray.png")
favoriteGems = favoriteGems.filter(item => item !== $(this).closest("div").first().text().replace(/\s+/g, ''))
localStorage.setItem("gems", JSON.stringify(favoriteGems))
$("#result").remove("."+item)
$("#result").show()
}
}
$(".star-pic").on("click", changeStar)
我试过了
$("#result").remove("."+item)
location.reload()
这也不起作用。
任何指导将不胜感激。
【问题讨论】:
标签: javascript jquery html ruby-on-rails