2

我对 jQuery 有疑问。不能将 id 传递给包含带有某些事件的 jQuery 的 javascript 函数吗?

例如,load_dll 完美运行。我正在努力update_dll正常工作。

 //Create values for drop down list
var empType = ['Sales Associate', 'New Hire Sales Associate', 'Post-Hire Graduation', 'Senior Supervisor'];
//initialize values
load_ddl(empType, 'empTypeddl');
update_dll('empTypedll', 'empType');
//Populate drop down list function
function load_ddl(arr, id) {
    for (i = 0; i < arr.length; i++) {
        $('<option/>').val(arr[i]).html(arr[i]).appendTo('#' + id);
    }
}
//Update Function
function update_ddl(source_id, target_id) {
    $('#' + source_id).change(function() {
        alert($('#' + source_id + ' option:selected').attr('value'));
    });
}

如果我将其简化为最基本的形式,它仍然可以工作。可以通过id吗?

$('#empTypeddl').change(function() {
     alert($('#empTypeddl option:selected').attr('value'));
});
4

4 回答 4

0

尝试将 source_id 作为偶数数据传递,如下所示:

//Update Function
function update_ddl(source_id, target_id) {
    $('#' + source_id).change({source_id: source_id}, function(event) {
        alert($('#' + event.data.source_id + ' option:selected').attr('value'));
    });
}

这将创建一个数据属性并将其附加到事件对象。

于 2012-07-26T18:05:19.730 回答
0

您的代码中有错字:

function update_ddl(source_id, target_id) {

应该:

function update_dll(source_id, target_id) {
于 2012-07-26T18:06:40.080 回答
0

我使用本机 javascript 来获取对象并分配给变量“源”

  function update_ddl(source_id, target_id) {

    var source = document.getElementById('source_id');
    source.change(function() {
        alert('$("#'+ source_id + ' option:selected").attr("value")');
    });  

 }
于 2012-07-26T18:24:38.213 回答
0
update_dll('empTypedll', 'empType');

应该

update_ddl('empTypeddl', 'empType');
于 2012-07-26T18:35:21.507 回答