我有以下脚本:
$(function user_type(){
/* Change select box values */
$(document).on("change",".user_type",function(){
var user_type = $(this).data('user_type');
$.post(base_url+"index.php/manage/load_type",{user_type: user_type},function(data){
var data_obj = JSON.parse(data);
$('#yehida').empty().append('please choose');
switch (user_type) {
case 1:
$.each(data_obj, function (i, item) {
$('#yehida').append($('<option>', {
value: 0,
text : 'no records'
}));
});
break;
case 2:
$.each(data_obj, function (i, item) {
$('#yehida').append($('<option>', {
value: item['id'],
text : item['department_name']
}));
});
break;
}
此脚本仅适用于onchange。我希望它在页面加载时也能运行。 我需要添加\ change?
答案 0 :(得分:2)
您需要将处理程序的逻辑提取到其自己的函数中。然后,您可以在加载和选择更改时调用它。试试这个:
function foo() {
var user_type = $(this).data('user_type');
$.post(base_url + "index.php/manage/load_type", {
user_type: user_type
}, function (data) {
var data_obj = JSON.parse(data);
$('#yehida').empty().append('please choose');
switch (user_type) {
case 1:
$.each(data_obj, function (i, item) {
$('#yehida').append($('<option>', {
value: 0,
text: 'no records'
}));
});
break;
case 2:
$.each(data_obj, function (i, item) {
$('#yehida').append($('<option>', {
value: item['id'],
text: item['department_name']
}));
});
break;
}
})
}
/* Change select box values */
$(document).on("change", ".user_type", foo)
/* on load */
$.proxy(foo, $('.user_type'))();
请注意,加载调用需要$.proxy
才能在函数中保持this
的范围。