テキストボックスがクリックされるたびに呼び出されるjavascriptクリック関数がありますが、何らかの理由で、テキストボックスがメインページ内にある場合にのみ機能します。テキストボックスをパーシャルに移動すると、クリックしても何も表示されません。 。クリックイベントをパーシャル内で機能させる方法を知っている人はいますか?
私のusers.js.coffeeファイル
$ ->
$("form[data-update-target]").live "ajax:success", (evt, data) ->
target = $(this).data("update-target")
$("#" + target).html data
$("input.submit").click ->
$(this).parent().submit()
true
$("#datepicker").click ->
alert "hello world"
ユーザー向けの新しいページ
<%= form_tag({:controller => 'users', :action => 'preview'}, :remote => true, :'data-update-target' => 'update-container') do %>
<%= radio_button_tag(:page_type, 'event', false, :class => 'submit') %>
<%= label_tag(:page_type, "Event") %>
<br/>
<% end %>
<div id="update-container">
</div>
ユーザーコントローラー
def preview
if params[:page_type] == "event"
@event = Event.new
render :partial => 'event', :object => @event
end
end
部分的に_event.html.erbと呼ばれるイベント
<%= form_for(@event) do |f| %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :description %>
<%= f.text_area :description %>
</div>
<div class="field">
<%= f.label :start %>
<input id="datepicker" type="text" value="" name="event_start">
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
生成されたhtml
<body>
<p id="notice"></p>
<p id="alert"></p>
<h1>New page</h1>
<form accept-charset="UTF-8" action="/users/preview" data-remote="true" data-update-target="update-container" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="iIodOQohxJgk1P5ZmFrbgw4W/h4cq45LBxGN3xjyREk=" /></div>
<input class="submit" id="page_type_event" name="page_type" type="radio" value="event" />
<label for="page_type">Event</label>
<br/>
</form><div id="update-container">
</div>
<input id="datepicker" type="text" value="" name="event_start">
<a href="/users">Back</a>
</body>