jQuery onClick功能不适用于DIV,就像某个时候后的特定加载一样



<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()"的脚本。我正在黑暗中击中目标。希望对你有帮助。在不分析有问题的代码的情况下,很难生成任何解决方案……

相关内容

最新更新