我正在使用jQuery在加载表单的隐藏元素#cs_contre
时触发函数:
$(document).ready(function()
{
$('#cs_contre').gentleSelect
({
hideOnMouseOut: false
});
});
HTML:
<select id="cs_contre" multiple="multiple" style="display: none;">
<option value="ES">Spain</option>
<option value="SE">Sweden</option>
<option value="UK">United Kingdom</option>
</select>
当重新加载我的表单act_form
时,我认为该事件不再受约束。我知道我可以使用on
事件将事件绑定到我的控件上,无论发生什么:
$('#act_form').on('click', '#cs_contre', function()
{
gentleSelect({ hideOnMouseOut: false });
});
但是我想调用的函数没有click
事件,所以我不知道如何调整上面的代码。我尝试了load
事件,但它不起作用。
另外,以我的方式调用函数是否正确?
该功能来自gentleSelect项目: http://shawnchin.github.io/jquery-gentleSelect/
要了解我在做什么,请点击上面链接开头的“选择一些水果”按钮。此函数以更漂亮的方式显示<select multiple=multiple></select>
(许多列...)。
#cs_contre
是隐藏的选择控件。项目的jquery创建了一个按钮来打开一个下拉列表,该列表本身填充了#cs_contre
元素。
如果不清楚,如果你有时间,请阅读上面的链接:)。
使用此代码:
$(document).on('load', '#act_form', function()
{
alert("load");
});
我没有看到警报,似乎表格从未加载,但我可以看到它!有什么问题?
答案 0 :(得分:0)
我找到了一个解决方案:):每次重新加载表单时都会调用该函数:
/* display select button with hidden drop down lists for adopt variables */
function display_adopt_variables()
{
$('#cs_contre').gentleSelect
({
hideOnMouseOut: false
});
}
$(document).ready(function()
{
display_adopt_variables()
});
//reset act form
function reset_act_form()
{
...
display_adopt_variables()
}
Voilà! :)