在我使用“after”函数后,我的方法原型不起作用

时间:2016-01-19 18:56:59

标签: javascript jquery html

我有一个“创建”选择的按钮(使用after),我想在创建之后,选择将打开。我搜索了互联网,发现了以下方法原型:

(function ($) {
    "use strict";
    $.fn.openSelect = function ()
    {
        return this.each(function (idx, domEl) {
            if (document.createEvent) {
                var event = document.createEvent("MouseEvents");
                event.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
                domEl.dispatchEvent(event);
            } else if (element.fireEvent) {
                domEl.fireEvent("onmousedown");
            }
        });
    }
}(jQuery));

这个原型运作良好,是其工作条件的一个例子:

html:

    <select id="selecttest">
        <option>1</option>
    </select>
    <button type="button" onclick="test()">test</button>

JS:

jQuery("#selecttest").openSelect();

但是当我在我的函数中尝试使用它来创建选择时,它不起作用。

看看我的HTML:

       <div id="disciplinas_edit_div">
            <div class="input-group">
                <div class="input-group-addon">Leciona as disciplinas</div>

            </div>
            <div id="disciplinas_edit"></div>
            <button type="button" onclick="maisdisciplina_edit();" class="btn btn-primary">
                <span class="glyphicon glyphicon-plus"></span> Disciplina
            </button>
        </div>

我的JS:

function maisdisciplina_edit() {
    jQuery("#disciplinas_edit").after(
        '<div class="row">' +
            '<div class="col-lg-10">' +
                '<select class="form-control" name="disciplinas[]">' +
                    '<option>exemple</option>' +
                '</select>' +
            '</div>' +
            '<div class="col-lg-2">' +
                '<button type="button" class="btn btn-danger form-control" onclick="menosdisciplina(this);"> ' +
                    '<span class="glyphicon glyphicon-minus"></span>' +
                '</button>' +
            '</div>' +
        '</div>');
    jQuery(jQuery("select[name^=disciplinas]")[0]).openSelect();//this line didn't work on this method

}

我在控制台中测试了该行并且它工作正常,它打开了最后添加的行。我尝试将该行放在单击按钮后调用的函数中,它也可以打开最后添加的行。为什么它不适用于我的方法,如何通过自动打开选择来解决我的问题?

0 个答案:

没有答案