私はajaxリクエストに問題があり、簡単な<input type="submit"/>
があります。jQueryライブが期待どおりに動作しない
他のビュー内でビューをロードするために使用します。モジュール式とは、あるビューから別のビューへの.load(url)
を使用するjqueryを意味します。 問題は、私がview_1の中でview_2を読み込み、view_2のjsスクリプトがview_1の中にある場合です。たとえば、live('click')
を使用してview_2からxhrリクエストを起動する必要があります。したがって、試してみると3 (multiple) xhr at same time
なぜか分からない。
私が知っている唯一のものは、次のとおりです。view_1でlive('click')
を使用して
- それは3複数のXHRを起動します。
- 012を使用しています(明らかに私は思っています)view_1に
click()
を使用しています。 - 直接内部
click()
を使用すると、それが動作します(しかし、私は唯一の「親」ビューでJSを使用することができ、ロードされたビューで JS使用することはできません)view_2
機能は本当に簡単です、本当にありません私はなぜこの問題があるのか知っている(私はまた、AJAX beforeSendでサブミットを無効にする)これはview_1のコードであり、ロードされたview_2で実行され、3つのXHRを起動する。それは、フォーム内の送信ボタンだ場合は、デフォルトの動作を妨げる場合を除き
$(document).ready(function(){
$('#save-doc').live('click',function(){
var _title = $('#doc-title').val();
var _doc = $('#doc-doc').val();
update_doc(url_update_doc,{'title':_title,'doc':_doc,'id_doc':_choosed_doc,'id_project':id_project},this);
});
});
function update_doc(_url,_data,_starter){
$.ajax({
type:'POST',
data:_data,
url:_url,
dataType:'json',
beforeSend:function(){
$('.ajax-loading').show();
$(_starter).attr('disabled','disabled');
},
error:function(){
$('.ajax-loading').hide();
$(_starter).removeAttr('disabled');
},
success:function(json){
$('.ajax-loading').hide();
$(_starter).removeAttr('disabled');
if(json.error){
$('#error-title').html(json.error_title);
$('#error-doc').html(json.error_doc);
$.scrollTo('.append-form-edit-doc','fast');
}
if(json.confirm){
$.scrollTo('#top','fast');
$.gritter.add({
title:'Document Saved',
text:json.confirm
});
}
}
});
}
IDが 'save-doc'の要素が複数ある可能性はありますか? –
あなたは "return false;"を追加しようとしましたか? 「クリック」ハンドラの最後まで – Pointy
@Shadow WizardのIDはIDです:) .. – sbaaaang