在Jquery中创建的按钮无法应用函数

时间:2014-02-16 20:13:45

标签: jquery

我正在纯粹用jQuery生成一个网页。应该发生的是当我按下页面上的“+”按钮时,调用函数add_timeline_element来创建一组新的元素。相反,我得到一个错误:

  

未捕获的TypeError:在[object]上调用了Function.prototype.apply   对象],它是一个对象而不是一个函数

我不确定为什么会出现这种错误。就像我说的一切都是通过Jquery生成的,我附加按钮的点击和功能与另一个按钮/功能'm'/ minimize_t_inject_container相同,而另一个工作正常。

JSFiddle

JS:

$(function(){    
    function add_timeline_element(){
        var timeline_element = $('<ul />', {
            class: "timeline_element"
        });
            var section_1 = $("<li />");
            var section_2 = $("<li />");
                var button = $('<button />', {
                    text: '-',
                    class: "t_intect_button"
                    //click: function(){alert($(this).parent().parent().remove();}
                });
                var text_input = $('<input />', {
                    type: "text",
                    class: "t_text_area"
                });

                section_1.append(button);
                section_2.append(text_input);
            timeline_element.append(section_1);
            ti
            meline_element.append(section_2);
        $(".t_inject_container").append(timeline_element);
    }

    function minimize_t_inject_container(){
        $(".add_button").toggle();
    }

    function create_twitter_bar(){
        var table_container = $("<ul />", {
            class: "t_inject_container"
        });
            var row = $("<li />", { class: "t_inject_row" });
                var menu = $("<ul />", { class: "menu" });
                    var section_1 = $("<li />");
                    var section_2 = $("<li />");
                        var add_element_button = $("<button />", {
                            text: '+',
                            click: add_timeline_element,
                            class: "add_button t_intect_button"

                        });
                        var minimize_button = $("<button />", {
                            text: 'm',
                            click: minimize_t_inject_container,
                            class: "minimize_button t_intect_button"
                        });
                    section_1.append(add_element_button);
                    section_2.append(minimize_button);
                menu.append(section_1);
                menu.append(section_2);
            row.append(menu);
            table_container.append(row);
        $('body').append(table_container);
    }
    create_twitter_bar();

2 个答案:

答案 0 :(得分:0)

您有section_1(button); and section_2(text_input);section_1section_2是元素。您将它们视为功能,而您无法做到。

答案 1 :(得分:0)

使用

var button = $('<button />', {
                    text: '-',
                    class: "t_intect_button"
                }).on('click', function(){alert($(this).parent().parent().remove())});