大半夜发帖实属无奈,还请好心人解救。
如图:
问题:
我想通过判断是滑过还是点击,然后给红框切换成滑过或点击,判断是自动判断,就是红框那个地方可以测到值是mouseover,但是滑过无效果,如果直接修改成mouseover是有效果的。
我觉得我应该写详细点。
//分开写法
$('类名').on({
mouseover:function(){//滑过执行}
,mouseleave:function(){//离开执行
}});
$('类名').on({
click:function(){//点击执行,其实这里的内容就是上面滑过执行的内容}
,mouseleave:function(){//离开执行
}});
//我现在想简写,就是自动判断下是mouseover还是click,然后直接执行;
//先判断,判断是自动判断,只需要得到o_t_mouse的值并在下面执行就行。
if(options.t_mouse==0){
o_t_mouse='mouseover';//如果options.t_mouse值为0则是滑过,
}else if(options.t_mouse==1){
o_t_mouse='click';//如果是1则是点击;
};
console.log(o_t_mouse);//此处可以调试到o_t_mouse的值是mouseover,但在下面调用时无效,如果将下面的o_t_mouse直接替换成mouseover就可以执行,不知道问题出来哪里
$('类名').on({
o_t_mouse:function(){//滑过或点击时执行,至于是滑过还是点击可从前面判断中得到}
,mouseleave:function(){//离开执行
}});
那我跟你写个on的定义:
$(document).on(<事件名称>, [可选:选择器], <事件处理函数>)
虽然你截图没全,但感觉应该是不对的。
$("selector").on(o_t_mouse,function(){
//do
});
明白你的意思了:
$(".parentclass").on("click mouseover",".childClass1,.childClass2",function(e){
if(e.type=="mouseover"){
}
else if(e.type=="click"){
}
});
function fnMouseover(){
}
function fnClick(){
}
唉,始终不是我想要的,最后修改了下,没有使用on,
if(options.t_mouse==0){
options.t_mouse='mouseover';//如果是0就是滑过
}else if(options.t_mouse==1){
options.t_mouse='click';//如果是1就是点击
};console.log(options.t_mouse);
$('#'+options.t_id).find('.'+options.th_this)[options.t_mouse](function(){
//滑过或点击时执行
return false;//点击a不跳转
}).mouseleave(function(){
//离开时执行
//shua=setInterval(autoplay,options.t_autotime);
});