从查询中创建的元素id调用新函数

时间:2013-05-29 01:01:21

标签: jquery function attr

我在创建一个从jQuery中的前一个select标签调用的新html选择标记时遇到了问题。

所以我从:

开始
$('#tab11').click(function() {

    var columns = [
        {val:'id', text:'id', id:'id'},
        {val:'display_name', text:'display_name', id:'display_name'},
        {val:'short_name', text:'short_name', id:'short_name'}
    ];  

    $('#columns').html('');
    $('#condition').html('');

    var sel = $('<select>').appendTo('#columns')
                           .css({backgroundColor:'#8B0000',
                                 color:'white',
                                 border:'inset 1px',
                                 borderColor:'#8B0000',
                                 width:'130'});

    $(columns).each(function() {
       sel.append($("<option>").attr({value:this.val, id:this.id})
                               .text(this.text)); 
    });

});

直到这里一切正常,所以现在我想调用类似

的函数
$('#id').click(function() {
    // some code here
});

其中#id等于我在上面函数中创建的选项标签中的id。 我的问题是,单击id='#id'等选项

不会执行此功能

我做错了什么?

感谢所有试图帮助我的人。 干杯。

1 个答案:

答案 0 :(得分:0)

在select上使用change事件,我猜点击事件对option元素不起作用。

Demo

$(function () {
    $('#columns').html('');
    $('#condition').html('');

    var sel = $('<select>').appendTo('#columns').css({
        backgroundColor: '#8B0000',
        color: 'white',
        border: 'inset 1px',
        borderColor: '#8B0000',
        width: '130'
    }).change(handleChange);

    $(columns).each(function () {
        sel.append($("<option>").attr({
            value: this.val,
            id: this.id,

        }).text(this.text))
    });
});

function handleChange() {
    alert($(this).val());
}