我有两个事件放在$('$ gallery_slide_main_thumbs img')上,当我打电话时它们没有被触发。没有调用悬停和点击功能。当我将鼠标悬停在图像上时,鼠标指针会发生变化。
Jquery的::
$('#gallery_slide_main_thumbs img').hover(function(){
$(this).animate({
opacity: 1
});
}, function(){
$(this).animate({
opacity: .66
});
});
<div id="gallery_slide_main_thumbs"></div>
#gallery_slide_main_thumbs{
width: 100%;
height: 100px;
position: absolute;
z-index: 6;
bottom: 0;
opacity: 0;
visibility: hidden;
margin: 0;
text-align: center;
}
#gallery_slide_main_thumbs img{
margin: 5px;
cursor: pointer;
opacity: .66;
}
$('#gallery_slide_main_thumbs img').click(function(){
$('#gallery_slide_main_thumbs img').eq(gallery_active_id).css({
'border': '',
'border-radius': '',
'margin-bottom': ''
});
});
id为“gallery_slide_main_thumbs”的div在启动时创建,并在调用另一个函数时填充图像,
编辑:开启。('click','img',function(){})无法解决问题。
答案 0 :(得分:0)
您需要使用 event delegation 来动态创建元素,方法是应用 .on() :
$('#gallery_slide_main_thumbs').on('click','img',function() {
$('#gallery_slide_main_thumbs img').eq(gallery_active_id).css({
'border': '',
'border-radius': '',
'margin-bottom': ''
});
});
对于.hover()
事件,您可以使用:
$('#gallery_slide_main_thumbs').on('mouseenter', 'seconddiv', function( event ) {
$(this).animate({
opacity: 1
});
}).on('mouseleave', 'seconddiv', function( event ) {
$(this).animate({
opacity: .66
});
});
答案 1 :(得分:0)
我相信图片会动态插入以下div:
<div id="gallery_slide_main_thumbs"></div>
因此,这意味着图像不会出现在初始标记中,并会因其他事件而被添加到div中。
在这种情况下,良好的旧事件绑定不起作用。所以这里涉及另一种被称为事件委托
的现象详细了解此=&gt; https://learn.jquery.com/events/event-delegation/
所以你的案例中的通用代码就是。
$(element).on('click',function(){});
$(element).on('hover',function(){});
我希望这适合你。如果您需要更多帮助,请与我联系。
答案 2 :(得分:0)
部分同意Talha Masood,但此事件作为完整代码需要在document.ready
事件上编写或作为函数调用。所以,可能就像下面这样:
$(document).ready(function(){
$(element).on('click',function(){});
$(element).on('hover',function(){
});
});
如果大家都同意,请告诉我。