$(function($){
$.fn.hoverManager = function(options) {
var defaults = {
clearTarget: "#wrapper",
mainArea: "#mainArea"
}
, setting = $.extend(defaults, options)
, targetObj = $(this)
, touch = window.ontouchstart===null ? true : false
, hoverMainArea = targetObj.find(".hoverMainArea")
, hoverMainList = targetObj.find(".hoverMainList")
, hoverThumbList = targetObj.find(".hoverThumbList").children()
, clearHover = function(e) {
if(e.type=='mouseleave' || $(e.target).parents(setting.mainArea).length==0) {
hoverMainArea.html('');
hoverThumbList.removeClass('active');
}
}
;
// event set
targetObj.find("hoverMainList").remove();
targetObj.each(function() {
$(this).hover(function(){}, clearHover);
});
hoverThumbList.each(function() {
$(this).click(
function(e){
if(touch) e.preventDefault();
}
).hover(
function() {
hoverThumbList.removeClass('active');
$(this).addClass('active');
var hoverName = $(this).data('hover-name');
hoverMainArea.html(hoverMainList.find('.'+hoverName).html());
},
function() {
}
);
});
if(touch) {
$(setting.clearTarget).bind('touchstart', clearHover);
}
};
});