jQuery 模式对话框在刷新后的第一页上工作正常,但在此之后的任何其他页面上都无法正常工作,除非刷新
jQuery Modal Dialog works fine on the first page after refresh, but not on any other pages after that unless refreshed
好的,所以我有这个jQuery模式对话框来提醒非注册用户在尝试访问仅限用户的操作时注册。刷新后,对话框工作正常,可以无限期关闭和打开...在该页面上。一旦页面切换,除非再次刷新页面,否则模式不起作用。
我将模态绑定到轨道,如果其他语句,例如
<% if signed_in? %>
<a href="User only page">
<% else %>
<div class="modalstart">
<& end %>
但是,我在没有语句的情况下尝试了它,并且问题仍然存在,所以我猜这是jQuery问题。
这是我的模式对话框代码的代码:
$(window).bind("load", function() {
$(document).ready(function() {
$('#modalresult').dialog({ width: 550, height: 300, autoOpen: false, modal: true,
resizable: false });
$( ".modalstart" ).click(function() {
$( "#modalresult" ).dialog( "open" );
return false;
});
})
});
并且对话框绑定的div 设置为在调用之前不显示,如果它有任何后果:
<div id="modalresult" style="display:none"></div>
模态框有一个注册表单和用于关闭它的 reqular X。
我在想,可能是jQuery以某种方式认为当用户切换页面时模式已经在使用中吗?提前感谢您的任何帮助或想法。
好吧,事实证明涡轮链接(rails 4.0)以某种方式干扰了jQuery代码,阻止了$(document).ready()
执行。这导致jQuery在刷新后用户导航的任何后续页面上不起作用。
解决方案是这个宝石 https://github.com/kossnocorp/jquery.turbolinks
我把它留给其他有同样问题的人,以节省时间。
非常感谢所有试图帮助的人。我非常感谢。
由于看起来您坚持使用默认的jQueryUI行为(例如,您正在使用内置的" x"关闭对话框),我认为只需清理javascript即可正常工作。我认为,这种$(window).bind("load", function() {
肯定会引起一些问题。
.JS
$(function() {
$('#modalresult').dialog({
width: 550,
height: 300,
autoOpen: false,
modal: true,
resizable: false
});
$('.modalstart').click(function() {
$('#modalresult').dialog('open');
});
});
你不应该做任何其他事件绑定,jQuery UI将"正常工作"。
虽然它不能模拟你的确切情况,但我在这里创建了一个简单的小提琴:http://jsfiddle.net/chucknelson/WVmx6/
window.bind 破坏了它,我认为您的特定问题可能与此有关。
- 刷新后,setTimeout将工作或不工作
- .html()不会'页面更改或刷新时无法工作
- AngularJS控制器没有'第一次刷新页面后无法工作
- .addClass不工作(刷新时被删除)
- Javascript don'刷新页面后无法工作-为什么
- Kml层在刷新后工作正常,但给定typeError:无法读取属性getMap.第一次加载时
- jQuery AJAX刷新没有'不能在iPhone上工作
- Javascript在刷新后停止工作
- 页面刷新时脚本无法正常工作
- 为什么 jquery toggle() 方法在页面不刷新的情况下无法正常工作
- ngCookie在我刷新页面后无法正常工作
- Angular + requireJS:快速刷新页面会导致页面在 Chrome 中停止工作
- Jquery 日期选择器仅在页面刷新后工作
- 将公司名称绑定到更新面板中的下拉列表,自动完成文本框工作,但每次页面刷新时
- 防止刷新后返回不工作
- 轮播在初始重定向时中断,但在刷新时工作正常
- Javascript仅在第一次刷新后工作
- Javascript在页面刷新后工作,不知道解决方案
- JQuery 函数在页面加载时未触发,它仅在我刷新页面或再次重新访问同一页面后才能工作
- Rails 应用程序 - jQuery Document.ready在单击链接时不调用,但在新选项卡中打开或刷新时工作