我的笨框架内工作,使Ajax请求的逻辑,像这样返回的元素...找不到阿贾克斯
$.ajax({
type: "POST",
url: "/ci/ajaxCustom/createTimePicker",
data: '',
success: function(html) {
$('#nav').show().html(html);
}
});
PHP函数在我ajaxCustom文件返回HTML。 ..
function createTimePicker() {
$ampm = array("am","pm");
$hours = array("1","2","3","4","5","6","7","8","9","10","11","12");
$minutes = array("00","15","30","45");
foreach($ampm as $amkey):
$timemenu .= '<li><a href="javascript:void(0)" id="ampm" class="menulink">'.$amkey.'</a>';
$timemenu .= '<ul class="time_menu">';
foreach($hours as $hour):
$timemenu .= '<li><a href="javascript:void(0)" id="hour" class="menulink">'.$hour.$amkey.'</a>';
$timemenu .= '<ul>';
foreach($minutes as $minute):
$timemenu .= '<li><a href="javascript:void(0)" id="minute" class="menulink">'.$hour.':'.$minute.' '.$amkey.'</a></li>';
endforeach;
$timemenu .= '</ul>';
endforeach;
$timemenu .= '</ul>';
$timemenu .= '</li>';
endforeach;
echo $timemenu;
}
我试图使用YUI库设置事件侦听器和一个用于这个看起来像这样...
this._setTimeButton = document.getElementsByClassName("menulink");
YAHOO.util.Event.addListener(this._setTimeButton, "click", this._setTime, null, this);
而_setTime功能被点击菜单项时执行......
_setTime: function() {
alert("here");
}
这里的问题,我已经遇到了这个在过去,但围绕它的工作。我为这个项目设置的所有点击监听器都能正常工作,它只是试图监听由Ajax返回的元素的点击。我假设DOM已经设置好了,所以YAHOO事件监听器无法找到Ajax请求返回的新近添加的HTML。有什么我可以做的重建DOM或其他解决方案?
我通常不会使用Ajax返回HTML,但在这种情况下我需要,但似乎无法解决此问题。谢谢您的帮助!
谢谢!这工作。我必须稍微编辑一下你的解决方案才能正确地引用这个函数,因为我在原型中工作,但是这样做了。我对jQuery有点新鲜,所以我从你的答案中也学到了一些东西。再次感谢你。 – user3169564
没问题 - 很高兴帮助:) – Archer