相关疑难解决方法(0)

Rails 4:如何使用带有turbo-links的$(document).ready()

我试图组织JS文件"rails way"时,在我的Rails 4应用程序中遇到了一个问题.他们以前分散在不同的观点中.我将它们组织成单独的文件,并使用资产管道进行编译.但是,我刚刚了解到,当打开turbo-linked时,jQuery的"就绪"事件不会触发后续点击.第一次加载页面时它可以工作.但是当你点击链接时,内部的任何内容ready( function($) {都不会被执行(因为页面实际上并没有再次加载).好解释:这里.

所以我的问题是:在启用turbo-links时,确保jQuery事件正常工作的正确方法是什么?您是否将脚本包装在特定于Rails的侦听器中?或者也许rails有一些魔力让它变得不必要?文档对于它应该如何工作有点模糊,特别是关于通过像application.js这样的清单加载多个文件.

javascript jquery asset-pipeline turbolinks ruby-on-rails-4

417
推荐指数
9
解决办法
17万
查看次数

Rails 5:如何使用带有turbo-links的$(document).ready()

Turbolinks可防止正常$(document).ready()事件在初始加载之外的所有页面访问时触发,如此此处所述.但是,链接答案中的所有解决方案都不适用于Rails 5.如何像以前的版本一样在每次访问页面上运行代码?

javascript jquery ruby-on-rails turbolinks ruby-on-rails-5

78
推荐指数
4
解决办法
5万
查看次数

自定义导轨确认框(使用$ .rails.confirm覆盖)

很长一段时间以来,我一直在修补这个问题.

我想用我自己推出的东西劫持默认的JS确认对话框.我想使用完全自定义的布局(bootstrap(来自twitter)对话框面板).

我所拥有的不起作用.它显示得很好,我可以点击按钮,它会消失.文档说明,如果是Ok,你应该返回true,如果是Cancel,你应该返回false.这很可爱,但它不起作用.看起来我需要一个回调或对最初调用该函数的对象的引用.即使后者也是不可能的,因为$ .rails.confirm只传递消息.

(这个问题的第一个答案非常有趣.我需要一种方法使其成为模态,以便等待返回自定义对话框.)

有人可以指出我正确的方向吗?我觉得我要打一些东西.硬!!jQuery UI只是一个选项,我可以使我的对话框看起来与我现在的对话框完全一样.

这是我有的:

这是放在我的application.erb中

<div id="modal-confirm" class="modal">
  <div class="modal-header">
    <h3>Are you sure?</h3>
    <a href="#" class="close">×</a>
  </div>
  <div class="modal-body">
    <p>{{VALUE}}</p>
  </div>
  <div class="modal-footer">
    <a id="modal-accept" href="#" class="btn primary">OK</a>
    <a id="modal-cancel" href="#" class="btn secondary">Cancel</a>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript.js:

function bootStrapConfirmDialog(message) {
  // get a handle on the modal div (that's already present in the layout).
  d = $("#modal-confirm");
  // replace the message in the dialog with the current message variable.
  $("#modal-confirm div.modal-body p").html(message);
  // offset the …
Run Code Online (Sandbox Code Playgroud)

javascript jquery ruby-on-rails

12
推荐指数
2
解决办法
9572
查看次数

在页面刷新之前,JQuery不会运行

我有一个简单的脚本来隐藏和显示某些按钮,但javascript不会运行,直到重新加载页面.如果用户点击该链接,我怎样才能让它运行?例如,在用户第一次链接到页面时,页面已经隐藏了某些div.

var array = [".section-1", ".section-2", ".section-3", ".section-4", ".section-5"];

var cnt = 0;

$(function() {
    for(var i = 0; i < 5; i++) {
        $(array[i]).hide();
    }
    $(array[cnt]).show();
    $(".previous").hide();
    $(".next").click(function () {
        if(cnt < 4){
            $(array[cnt]).hide();
            cnt++;
            $(array[cnt]).show();
        }
        if (cnt == 4) {
            $(".next").hide();
        }
        if(cnt > 0) {
            $(".previous").show();
        }

    });

    $(".previous").click(function (){

        if(cnt > 0) {
            $(array[cnt]).hide();
            cnt--;
            $(array[cnt]).show();
        }


        if(cnt < 4){
            $(".next").show();
        }
        if(cnt == 0){
            $(".previous").hide();
        }

    });
});
Run Code Online (Sandbox Code Playgroud)

这是清单文件.

// This is a manifest …
Run Code Online (Sandbox Code Playgroud)

html javascript ruby jquery ruby-on-rails-4

1
推荐指数
1
解决办法
2572
查看次数