我正在攻击一个图库插件,我想禁用缩略图的点击事件并将其替换为悬停事件。
这就是我所做的:http://jsbin.com/enezol/3
$(function() {
var galleries = $('.ad-gallery').adGallery();
$('.ad-thumb-list a').hover(function() {
$(this).click();
});
$('.ad-thumb-list a').click(function() {
return false;
});
});
该插件不允许我设置要使用的事件。因此,我只需在其上添加一些调整,而不是从代码中更改它。
所以我想禁用“缩略图”的点击事件,而只是使用“悬停”事件。
有没有想法?只要符合我的要求,我也会接受其他方法。
谢谢!
尝试实施Steph Skardal和Nicosunshine建议:
var thumbs = $('.ad-thumb-list a'),
oldfunction = thumbs.data("events").click["function () { context.showImage(i); context.slideshow.stop(); return false; }"];
thumbs.unbind("click").hover(oldFunction);
编辑:我的解决方案:
我使用return false来限制它进入url,但它不会限制调用该函数。还有其他想法吗?
var galleries = $('.ad-gallery').adGallery();
var thumbs = $('.ad-thumb-list a');
thumbs .hover(
function () {
$(this).click();
},
function () {
}
);
thumbs.click( function () { return false; });
答案 0 :(得分:3)
您想使用jQuery's unbind方法取消绑定点击事件。调用插件后必须调用它。 E.g:
$('.ad-thumb-list a').unbind('click');
答案 1 :(得分:0)
您可以尝试取消绑定click
方法,然后将原始函数绑定到hover
。
如果您无法获得原始功能,可以通过查看控制台返回的内容来获取它:
$('.ad-thumb-list a').data("events").click; //name of the property that has the function
然后你抓住那个功能并执行:
var thumbs = $('.ad-thumb-list a'),
oldfunction = thumbs.data("events").click["theValueYouGotInTheConsole"];
thumbs.unbind("click")
.hover(oldFunction);
编辑:
Here是我使用"theValueYouGotInTheConsole"
的示例,在我正在访问click属性的图像中,然后“4”是存储函数的位置。
如果您不想对您可以执行的值进行硬编码:
var dataEvents = thumbs.data("events").click,
oldFunction;
for(var functionEvent in dataEvents) {
oldFunction = dataEvents[functionEvent];
break; //I'm assuming there's only one event
}