js选择器在新创建的div中插入ruby部分

时间:2013-12-13 18:08:12

标签: javascript jquery ruby-on-rails

我有数字字段和相关的空div。我可以使用一个代码来执行此操作:当您增加或减少数字字段内的数字时,新的div插入空div后。 1在数字字段1新div,2在数字字段1新div 2总div,3在数字字段1新div 3总div。等等。

现在我的代码正在创建一个新的空div,其中包含任何内容。但我想要的是在新div中使用ruby partial创建新的div。

这是一个演示:

http://jsfiddle.net/7PhJZ/39/

这是我在js.erb文件中尝试的内容

$(document).ready(function() {
    $('.product-quantity').each(function() {
        $(this).data('val', this.value);
    }).on('change', function () {
            var val = $(this).val(),
                    old = $(this).data('val'),
                    ele = $(this).closest('[id^="product"]').find
                    ('[data-size="'+this.name+'"]'),
                    inc = val >= old;

            if (inc) {
                $('<div/>', {
                    'class': 'name-number-field', 'text':'<%= render :partial => 
                 'name_number_field', :locals => {:product => product, :size => size} %>'
                }).insertAfter(ele);
            }else {
                $('div.name-number-field', ele.parent()).last().remove();
            }

            $(this).data('val', this.value);
        });
});

2 个答案:

答案 0 :(得分:0)

我不知道如何,但我有一个想法 gem'cocoon'完全符合您的要求(使用JS渲染部分),但它需要在模型上进行关联 假设你没有模型关联,你只想插入部分内容,我建议你研究一下cocoon实现的想法和方法

  

https://github.com/nathanvda/cocoon/blob/master/lib/cocoon/view_helpers.rb   https://github.com/nathanvda/cocoon/blob/master/app/assets/javascripts/cocoon.js

答案 1 :(得分:0)

您可以在js.erb文件中执行此操作:

$('#yourDiv').html('<%= escape_javascript( render :partial => "name_number_field", :locals => { :product => product, :size => size } )%>');