代码之家  ›  专栏  ›  技术社区  ›  jerhinesmith

$(document).ready in ruby部分视图

  •  0
  • jerhinesmith  · 技术社区  · 16 年前

    希望这个例子能更好地说明我的观点,而不是简单地解释它:

    我正在使用许多jquery水印插件之一。要将水印附加到文本框,语法为:

    $(document).ready(function(){
      $("#item_description").watermark("Description");
    });
    

    如果我有一个已经包含id=item_description的文本框的页面,这将非常有效。但是,如果我试图通过在按钮上加载包含该文本框的部分视图来完成任何半封闭类型的工作,请单击,然后 $(document).ready() 已被调用,水印未被应用。我试着分开 $(文档).ready()) 在局部视图中,但它看起来像Rails(?)剔除任何 <script> 在呈现页面时阻塞,这意味着它仍然无法被调用。

    有简单的方法吗?我只是缺少一些明显的东西吗?

    编辑 我正在使用 jQuery Colorbox 加载lightbox内部部分视图的插件(通过 $(.colorbox).colorbox(); )--我自己并不是在执行Ajax请求。如果我了解到目前为止的答案,最好的方法可能是使用插件的回调功能来执行部分内部所需的任何javascript。

    工作实例 :根据反馈,我只需将colorbox调用更改为:

    $(".colorbox").colorbox({}, function(){
      $(".description").watermark("Description"); //Changed to a class
    });
    
    2 回复  |  直到 16 年前
        1
  •  2
  •   Kobi    16 年前

    为什么一定要在里面 $(document).ready ?您已经有了加载Ajax的javascript,因此可以激活 $("#item_description").watermark("Description"); 在回拨时。

        2
  •  1
  •   ichiban    16 年前

    在Ajax中,直接进行调用而不将其包装在内部 $(document).ready()

    $("#item_description").watermark("Description");