html注入完成onclick时的Javascript调用函数
我遇到了这种情况: 有一个日历脚本来选择日期。选择日期时,一个名为onclick的函数将使选择框可用于时间选择。现在它不像它的display:none->display:block,选择由JS生成。我的目标是定制这个选择。为此,我得到了一个jquery脚本custom.select,它只是将select转换为span。问题是,如果我在日历调用之后立即将此脚本的调用添加到onclick中,它就不会执行。我很确定这是因为在那个阶段select的html还没有被注入。如果我在选择可见后从firebug控制台调用custom.select函数,它就可以正常工作了。 所以问题是:我怎么称呼它,让它在选择框上变魔术 谢谢与以下人员一起使用委派: 您应该将事件委托给目标元素最近的静态容器。这意味着更改$document.on'click','.classdynamic',函数{…};html注入完成onclick时的Javascript调用函数,javascript,jquery,ajax,onclick,Javascript,Jquery,Ajax,Onclick,我遇到了这种情况: 有一个日历脚本来选择日期。选择日期时,一个名为onclick的函数将使选择框可用于时间选择。现在它不像它的display:none->display:block,选择由JS生成。我的目标是定制这个选择。为此,我得到了一个jquery脚本custom.select,它只是将select转换为span。问题是,如果我在日历调用之后立即将此脚本的调用添加到onclick中,它就不会执行。我很确定这是因为在那个阶段select的html还没有被注入。如果我在选择可见后从firebug
类似于:$'staticContainer'。单击,'.classdynamic',函数{…} 确定何时添加元素并非易事 最好的方法是对创建select的脚本进行一些控制,并将代码附加到该脚本中。实现这一点的一种方法是使用面向方面编程AOP——这也不容易
对于当前的浏览器,最简单的方法是在循环中使用setTimeout并轮询页面,直到元素存在。好的,多亏了Christophe!我在这里使用了选择器侦听器脚本: 更复杂的是,父母也不在场。因此,我所做的是在日历调用lol之后将侦听器连接到onclick。我需要制作另一个函数,以使其与脚本一起工作,下面是代码:
var doSelect = function(){
jQuery('#timeslots').customSelect();
};
jQuery(document).ready(function(){
jQuery('.td_calendar').on('click','#anchor1',function(){
cal.select(document.forms['frmRequest'].startdate,'anchor1','yyyy-MM-dd');
document.getElementById('slots').addSelectorListener('#timeslots', doSelect);
});
});
这就是我对你的建议所做的:jQuerydocument.readyfunction{jQuery'.td_calendar''on'click','anchor1',function{cal.selectdocument.forms['frmRequest'].startdate,'anchor1','yyyy-MM-dd';jQuery'timeslots'.customSelect;};它仍然不起作用。“anchor1”在您的页面中多次使用相同的ID?使用on不会改变脚本运行时元素还不存在的事实。anchor1在所需链接上只存在一次。正如Christophe所说元素还不存在。。在调用customSelect之前是否需要等待元素出现?
var doSelect = function(){
jQuery('#timeslots').customSelect();
};
jQuery(document).ready(function(){
jQuery('.td_calendar').on('click','#anchor1',function(){
cal.select(document.forms['frmRequest'].startdate,'anchor1','yyyy-MM-dd');
document.getElementById('slots').addSelectorListener('#timeslots', doSelect);
});
});