Javascript Jquery函数未被激发(html在第二时刻被注入)
对不起,没有太多清晰的标题 我正在使用Twitter引导模式编辑一些记录Javascript Jquery函数未被激发(html在第二时刻被注入),javascript,jquery,html,ajax,twitter-bootstrap,Javascript,Jquery,Html,Ajax,Twitter Bootstrap,对不起,没有太多清晰的标题 我正在使用Twitter引导模式编辑一些记录 <a class="contact" href="#" data-form="/edit/models/sms/{{ @value['fields']['id'] }}" title="Edit"> <span class="fa-stack fa-lg"> <i class="fa fa-square-o fa-stack-2x"></i>
<a class="contact" href="#" data-form="/edit/models/sms/{{ @value['fields']['id'] }}" title="Edit">
<span class="fa-stack fa-lg">
<i class="fa fa-square-o fa-stack-2x"></i>
<i class="fa fa-pencil fa-stack-1x"></i>
</span>
</a>
最后,这是在模态内部注入的形式:
<div class="modal-body">
<form role="form" method="post" class="sms-model-form" action="{{ @SERVER.REQUEST_URI }}">
<fieldset>
<legend class="sr-only">Edit</legend>
<input type="hidden" name="edit_id_model" value="{{ isset(@sms_model) ? @sms_model[0]['fields']['id']['value'] : '' }}" />
<div class="form-group">
<label for="title">{{ @lng_label_sms_title }}</label>
<input type="text" class="form-control required-field" name="title" value="{{ isset(@sms_model) ? @sms_model[0]['fields']['title']['value'] : '' }}"/>
</div>
<div class="form-group">
<label for="text">{{ @lng_label_sms_text }}</label>
<textarea class="form-control" name="text" class="required-field">{{ isset(@sms_model) ? @sms_model[0]['fields']['text']['value'] : '' }}</textarea>
</div>
<button type="submit" class="btn btn-white pull-right">
<i class="fa fa-plus-circle"></i> {{ isset(@sms_model) ? @lng_btn_edit : @lng_btn_add }}
</button>
<input type="submit" class="btn btn-primary" value="Test" />
</fieldset>
</form>
</div>
但表单是通过常规模式提交的,而不是通过AJAX。也就是说,我没有在控制台中记录事件
我认为这是因为表单是在页面的第二个瞬间注入的,而不是在
$(document).ready(function() {
我说得对吗?如何解决我的问题?您几乎肯定需要通过委派设置事件处理程序:
$(document).on('submit', '.sms-model-form', function(e) {
在DOM的根上附加一个处理程序以捕获冒泡的“提交”事件。因为您是在代码运行后添加模式对话框内容,如果您按照自己的方式添加,代码将完全无效;“.sms model form”
选择器将不匹配任何内容,因此不会在任何位置附加任何事件处理程序
使用上述形式的
.on()
,您可以确保涉及动态添加的DOM子结构的事件仍将按照您的期望进行处理。它的工作方式类似于charme。。。之后,清除他的缓存:)
$(document).ready(function() {
$(document).on('submit', '.sms-model-form', function(e) {