当来自另一个函数的元素调用该事件时,Javascript函数不起作用

时间:2013-06-15 06:53:56

标签: javascript

我已经下载了一个日历脚本,当点击输入元素时,会弹出一个日历。

<script language="JavaScript">
  $(function() {
        $( ".datepicker" ).datepicker();                
  });   
</script>

<input class='datepicker' />

上面的代码工作正常。

但是当元素来自javascript ...

<script language="JavaScript">
function showElement()
{
    $('#mydiv').html("<input class='datepicker' />");

}
</script>

<div id='mydiv'></div>

单击输入时,日历不会显示。 我认为下载的脚本没有错误。我想我需要做一些事情来使这个日历出现,即使该元素是由javascript创建的。 我应该修改什么?谢谢!

1 个答案:

答案 0 :(得分:1)

将您的功能更改为:

function showElement()
{
    $('#mydiv').html("<input class='datepicker' />");
    $( ".datepicker" ).datepicker();

}

甚至更好,请执行以下操作:

function showDatePicker(selector) {
    $(selector).datepicker();
}

function showElement()
{
    $('#mydiv').html("<input class='datepicker' />");
    showDatePicker(".datepicker");
}

通过这种方式,您可以通过调用showDatePicker()函数来显示日期选择器,该函数与您作为参数传递给函数的选择器匹配的任何元素。当然,在您的情况下,您只需要在调用showElement()函数

后调用它