我有一个“创建”选择的按钮(使用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
}
我在控制台中测试了该行并且它工作正常,它打开了最后添加的行。我尝试将该行放在单击按钮后调用的函数中,它也可以打开最后添加的行。为什么它不适用于我的方法,如何通过自动打开选择来解决我的问题?