我有一个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>