<div class="editdiv">Test</div>
。jQuery点击功能已添加到Document..ready功能中。但是 editdiv
用延迟动态加载页面。
因此,当我单击div
时。功能没有调用。通过使用timeout
功能正常工作。
我需要另一种方法来解决此功能。
如果您的 .editdiv
在加载JS后动态加载,以便您的click
事件无法检测到它,并且它将无法使用,则应使用事件委托 on()
>处理新鲜的DOM:
$('body').on('click', '.editdiv', function(){
//Your click event code
})
如果要避免使用setTimeout
,则可以使用queue
回调方法使用delay
$('div.scroll-area-blue')
.delay(5000)
.queue(function() {
$(this).enscroll({
showOnHover: false,
verticalScrolling: true,
verticalTrackClass: 'vertical-track-blue',
verticalHandleClass: 'vertical-handle-blue'
});
});
如果您会使用setTimeout
更好地使用它,例如:
setTimeout( enscrollDiv, 5000);
function enscrollDiv(){
$('div.scroll-area-blue').enscroll({
showOnHover: false,
verticalScrolling: true,
verticalTrackClass: 'vertical-track-blue',
verticalHandleClass: 'vertical-handle-blue'
});
}
希望这会有所帮助。
真的很难理解您的问题出了什么问题。我想您是使用AJAX或类似技术加载特定的DIV-这意味着DIV最初是不可用的。
jQuery的工作方式是,它仅将事件绑定到仅在执行零件时可用的元素。
如果$('#myDiv').click(function(){})
被调用时不存在<div id='myDiv'></div>
,则它将无法使用。
一个解决方法是这样做:
$('body').on('click','#myDiv',function(){});
这会注册单击身体,然后检查单击元素是否具有ID" myDiv"。我们可以期望<body></body>
始终存在。因此,我们对以前的代码的问题不会在这里发生。
也许您正在加载HTML元素(标签)之前加载JavaScript代码。尝试在所有HTML标签已经完成加载时,在车身的末端标签之前添加包含" document.ready()"的脚本。我正在黑暗中击中目标。希望对你有帮助。在不分析有问题的代码的情况下,很难生成任何解决方案……