1

我正在学习jQuery。我想添加一个功能,所以当用户单击td具有指定类名的 a 时,我想将其更改为一个select选项。使用该选定值,我想更新我的数据库。

直到这里还好。我可以将 更改tdinput但是,我无法将更改事件中的事件添加到该替换元素。

这是我所拥有的:

(function($) {

    var _defaults = {
        some : "defaults",
    };

    $.fn.changetoi = function(options) {

        var _opts = $.extend({}, _defaults, options);

        $(this).on('click', function() {
            var replaced = $('<select name="status" class="changer"><option>Test</option></select>');
            $(this).replaceWith(replaced);
        });

        $('.changer').on('change', function() { //here I'm try to access the changed element
            var value = $(".changer option:selected").text();
            //post the selected value
            $.post("test.php", {
                "value" : value
            }, function(data) {
                //whatever and
                $(this).replaceWith(value);
            });
        });

    };

    $('.change').changetoi();
})(jQuery);

这是表、测试等http://jsfiddle.net/HZvH8/4/的小提琴

4

1 回答 1

2

您需要像这样制作处理程序:

$(document).on('change', '.changer', function() {

此元素在 DOM 就绪时不存在,因此您将change()事件绑定到那里的元素。

演示:http: //jsfiddle.net/tymeJV/HZvH8/5/

于 2013-05-16T14:25:58.980 回答