我想用jQuery覆蓋下面的代碼中的change事件上的JavaScript,但是我相信內聯JavaScript優先於聲明的jQuery功能。基本上我正在嘗試讓我的站點的AJAX版本包含一個額外的JavaScript文件。我需要這個功能仍然可以在沒有額外的AJAX版本的情況下工作,但我不確定我是應該將它包含在主JavaScript文件中,還是將它保持內聯,就像現在一樣。任何建議和有關他們的信息將不勝感激!謝謝!用jQuery覆蓋默認的javascript功能
<form action="/cityhall/villages/" method="post" name="submit_village">
<select name="village" onchange="document.submit_village.submit();">
<option value=""></option>
</select>
</form>
我試圖使用jQuery的表格插件的帖子提交給PHP來處理請求如下:
var bank_load_options = {
target: '#content',
beforeSubmit: showRequest,
success: showResponse
};
$('form.get_pages').livequery(function(){
$(this).ajaxForm(bank_load_options);
return false;
});
我修改了代碼如下:
<form action="/cityhall/villages/" method="post" id="submit_village" name="submit_village">
<select name="village" class="get_pages" rel="submit_village">
<option value=""></option>
</select>
</form>
<script>
# main JavaScript
$('.get_pages').live('change',function(e){
var submit_page = $(this).attr('rel');
$("#"+submit_page).submit();
});
# ajax JavaScript
var bank_load_options = {
target: '#content',
beforeSubmit: showRequest,
success: showResponse
};
$('.get_pages').live('change',function(){
var submit_page = $(this).attr('rel');
$("#"+submit_page).ajaxForm(get_pages_load_options);
return false;
});
</script>
但是現在它只在我更改它時運行其他選項。
請顯示您正在使用(或嘗試使用)「覆蓋」inline'onchange'屬性的代碼。鑑於你正在使用jQuery,我建議不要在'onxyz'屬性中使用任何JS,即使對於非Ajax版本。 – nnnnnn
如果'onchange'中設置的功能被移動到我的主JavaScript文件中,並且隨後聲明ajax文件,它是否會在相同範圍內寫入功能? – OpensaurusRex
如果您想確定自己「覆蓋」了舊事件,則應該明確解除綁定該事件並重新附加該事件。確保這是在正確的程序中完成的。它將在很大程度上取決於你如何檢測和實現AJAX版本...... –