不使用JS刷新或重新加载页面
No refresh or page reload using JS
我的Rails 4应用程序中有一个Ajax请求,但一旦单击该按钮,它就会重新加载整个页面。我该如何防止这种情况发生?页面是缓存的,所以我不能简单地添加链接或按钮。提前谢谢。
listing_collection.js
$(document).ready(function(){
$(".listcollect").on("click", function(){
var listID = this.id;
$.ajax({
method: "GET",
url: "/listing_collections/:id/listcollect",
success: function(result) {
var arrLen = result.length
var $ul = $("<ul></ul>")
for (var i = 0; i<arrLen; i++){
var $li = $("<li></li>");
var $a = $("<a></a>");
$a.attr("href", "/listings/" + listID + "/add_to_collection?listing="+listID+"$amp;listing_collection_id="+result[i]["id"]+"&listing_id="+listID)
$a.text(result[i]["name"])
$li.append($a)
$(this).next().append($li)
}
}.bind(this)
})
});
});
这是按钮:
<div class="btn-group listcollect-wrapper">
<button class="listcollect button btn-blue-white btn-2x dropdown-toggle" data-toggle='dropdown' type="button" id=<%= listing.id %>>Add to Listing Collection <span class="caret"></span></button>
<ul class='dropdown-menu'>
</ul>
</div>
我的两美分此类.listcollect
的dom是提交类型的按钮,即button type="submit"
您可以使用button type = "button"
或
event.preventDefault()
$(".listcollect").on("click", function(){
event.preventDefault()
// Rest of code
})
这是因为这是锚点标记的默认行为。根据建议,您可以将控制类型更改为类似按钮的类型,也可以覆盖默认行为,如
$(".listcollect").on("click", function(e){
e.preventDefault();
});
试试这个:
$(document).ready(function(){
$(".listcollect").on("click", function(e){
e.preventDefault();
e.stopPropagation();
var listID = this.id;
$.ajax({
method: "GET",
url: "/listing_collections/:id/listcollect",
success: function(result) {
var arrLen = result.length
var $ul = $("<ul></ul>")
for (var i = 0; i<arrLen; i++){
var $li = $("<li></li>");
var $a = $("<a></a>");
$a.attr("href", "/listings/" + listID + "/add_to_collection?listing="+listID+"$amp;listing_collection_id="+result[i]["id"]+"&listing_id="+listID)
$a.text(result[i]["name"])
$li.append($a)
$(this).next().append($li)
}
}.bind(this)
})
});
});
我添加了e.preventDefault()和e.stopPropagation(),前者在默认情况下阻止浏览器处理点击,后者在控件的容器中禁用点击事件的传播,以防它们也有侦听器。
相关文章:
- 在新的浏览器选项卡上加载新的aspx页面后调用JavaScript函数
- 更改css链接并等待加载新的css
- 如何在Ajax加载新内容时停止JavaScript执行
- 当在ng视图中加载新路由时,Tabbing(tabindex)针对错误的元素
- 如何使用输入数据加载新的extjs图表
- JQuery Masonry.Ajax图标和“;加载新项目”;绳子放错地方了
- 通过javascript在同一个打开的选项卡中重新加载新的网页内容
- 当用户到达页面右侧时加载新内容
- 数据表 AJAX 筛选器重新加载数据
- 超链接单击以加载新页面并执行JavaScript
- 单击时加载新的 SVG
- 在RadWindow中加载新页面,然后从加载的窗体中关闭窗口
- ajax在页面刷新之前不会加载新的sql结果
- 谷歌地图API-在从ajax页面加载新数据之前清除标记、多段线
- 使用Ajax加载页面,并在必要时加载新脚本
- 加载新页面时的过渡效果,AJAX
- Ajax没有正确加载新页面
- 正在加载新的Javascript,但正在调用旧的Javascript.MVC
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 我怎么能有一个花哨的盒子一样的弹出体加载,但与cookie不连续加载重新加载