我的AJAX调用不能在下一页上工作,直到我点击刷新
My AJAX call won't work on next page untill I hit refresh
我的javascript/ajax工作在我的页面'http://localhost:3000/',但当我点击下一页,它去页面'http://localhost:3000/?page=2'它不工作,直到我点击刷新按钮,然后它将工作。为什么会这样,我该如何解决?
edit*我附加了下一页的haml调用。
$(function() {
$('.show_event').click(function(evt) {
evt.preventDefault();
console.log("click")
$.get(this.href,function (code){
var divs = $(code).filter(function(){
return $(this).is('name')
});
divs.each(function() {
$('.event-text').replaceWith('<div class="event-text">' + $(this).html() + '</div>');
});
});
});
});
= link_to 'Next page', page: @pages[:page] + 1 unless @pages[:page] >= @pages[:last_page]
试试这个:
$('body').on('click', '.show_event', function(evt) { ...
这解决了这个问题。涡轮链接在做一些古怪的事情。
$(document).ready(ready);
$(document).on('page:load', ready);
function ready() {
$( function () {
$( 'body' ).on( 'click', '.show_event', function ( evt ) {
evt.preventDefault();
console.log( "click" )
$.get( this.href, function ( code ) {
var divs = $( code ).filter( function () {
return $( this ).is( 'div#event' )
} );
divs.each( function () {
$( '.event-text' ).replaceWith( '<div class="event-text">' + $( this ).html() + '</div>' );
} );
} );
} );
} );
}
最有可能的是你将页面2加载到页面1中,然后期望链接被点击并重复操作。
问题是正在加载的新html没有与事件处理绑定。
您可以使用委托,类似于下面的
$(document).delegate(".show-event", "click", function () { /* code here */ });
相关文章:
- 刷新后,setTimeout将工作或不工作
- .html()不会'页面更改或刷新时无法工作
- AngularJS控制器没有'第一次刷新页面后无法工作
- .addClass不工作(刷新时被删除)
- Javascript don'刷新页面后无法工作-为什么
- Kml层在刷新后工作正常,但给定typeError:无法读取属性getMap.第一次加载时
- jQuery AJAX刷新没有'不能在iPhone上工作
- Javascript在刷新后停止工作
- 页面刷新时脚本无法正常工作
- 为什么 jquery toggle() 方法在页面不刷新的情况下无法正常工作
- ngCookie在我刷新页面后无法正常工作
- Angular + requireJS:快速刷新页面会导致页面在 Chrome 中停止工作
- Jquery 日期选择器仅在页面刷新后工作
- 将公司名称绑定到更新面板中的下拉列表,自动完成文本框工作,但每次页面刷新时
- 防止刷新后返回不工作
- 轮播在初始重定向时中断,但在刷新时工作正常
- Javascript仅在第一次刷新后工作
- Javascript在页面刷新后工作,不知道解决方案
- 为什么这个javascript停止刷新工作
- 为什么不部分刷新工作?