GVKun编程网logo

javascript – 如何在jQuery mouseout上应用原始样式

16

此处将为大家介绍关于javascript–如何在jQuerymouseout上应用原始样式的详细内容,此外,我们还将为您介绍关于javascriptmouseover、mouseout停止事件冒泡的解

此处将为大家介绍关于javascript – 如何在jQuery mouseout上应用原始样式的详细内容,此外,我们还将为您介绍关于javascript mouseover、mouseout停止事件冒泡的解决方案_javascript技巧、javascript – iPad上的jQuery mouseout、javascript – Jquery / ajax循环SetTimeout、javascript – jQuery mouseenter / mouseleave html() – 交换问题的有用信息。

本文目录一览:

javascript – 如何在jQuery mouseout上应用原始样式

javascript – 如何在jQuery mouseout上应用原始样式

我在背景图像上应用了淡出效果.如何在mouSEOut上慢慢应用原始样式?

jsfiddle:http://jsfiddle.net/KevinOrin/H6Q3J/

jQuery('.square-section').mouSEOver(function(){
    jQuery(this).fadeto('slow',0.3, function(){
        jQuery(this).css('background-image', 'url(' + $img + ')');
    }).fadeto('slow',1);
});

解决方法:

你没有在第一个地方使用$img变量..所以第一个不需要回调函数.

如果要完全更改图像,则回调函数可能在此处有帮助.

jQuery('.square-section').hover(function(){
    jQuery(this).fadeto('slow',0.3);
}, function() {
    jQuery(this).fadeto('slow',1);
});

Check Fiddle

如果要交换2个不同的图像,可以尝试这种方法

jQuery('.square-section').hover(function(){
    jQuery(this).fadeto('slow', 0.3, function() {
        jQuery('.square', this).removeClass('square-chess').addClass('square-chart');
        jQuery(this).fadeto('fast', 1);
    });
}, function() {
    jQuery(this).fadeto('fast', 0.3, function() {
       jQuery('.square', this).removeClass('square-chart').addClass('square-chess');
       jQuery(this).fadeto('fast', 1);
    });
});

Fiddle with 2 images

jQuery('.square-section').hover(function () {
    jQuery('.square', this).removeClass('square-chess').addClass('square-chart');
}, function () {
    jQuery('.square', this).removeClass('square-chart').addClass('square-chess');
});

javascript mouseover、mouseout停止事件冒泡的解决方案_javascript技巧

javascript mouseover、mouseout停止事件冒泡的解决方案_javascript技巧

在IE里有onmouseleave和onmouseenter, 而对于要兼容各大浏览器的Web开发人员来说还是一件头疼的事。
虽然网上已经有针对Mozilla Firefox的一些计策,但代码量也是不容乐观的。
想寻求比较好的解决方案,于是就翻遍了国内的大小网站,终一无所获,不得不硬着头皮去读国外网站,结果是理想的,因为W3C里有relatedTarget,于是就有了下边的解决方案:

复制代码 代码如下:

function isMouseLeaveOrEnter(e, handler) {
if (e.type != ''mouseout'' && e.type != ''mouseover'') return false;
var reltg = e.relatedTarget ? e.relatedTarget : e.type == ''mouseout'' ? e.toElement : e.fromElement;
while (reltg && reltg != handler)
reltg = reltg.parentNode;
return (reltg != handler);
}

在onmouseover和onmouseout里做如上判断。
作者:lxsgoodluck

javascript – iPad上的jQuery mouseout

javascript – iPad上的jQuery mouseout

我有一个jQuery代码,在桌面浏览器上运行良好;
$("span#checkBox_err").mouSEOut(function () {
                        $("span#checkBox_err").fadeOut("slow");
                    });

但同样不会在iPad上触发(因此checkBox_err显示在屏幕上,但从不隐藏)

如何在iPad上触发mouSEOut事件?

另外,我想避免使用任何额外的库来解决这个小问题.

我有一个关注的问题

我正在iPad上测试一个页面,我正面临一些实现鼠标操作行为的问题.

所以问题很容易理解; 1.在我的页面上,点击(或者说触摸)有一个复选框,我想显示一个errorMsg 2.点击/触摸除errorMsg以外的任何内容,我想隐藏errorMsg

以下是我写的代码;

$(document).bind("touchstart",function(e){
         if(e.target.id != "checkBox_err")
        $("span#checkBox_err").fadeOut("slow");
     });
}


$("input:checkBox").bind("touchstart",function(){
$("span#checkBox_err").fadeIn("fast");

});

现在问题是当我单击/触摸复选框时,errorMsg显示一段时间然后它也立即隐藏它(因为目标不是errorMsg)

我该如何解决这个问题?

解决方法

你可以试试.blur()而不是.mouSEOut()

javascript – Jquery / ajax循环SetTimeout

javascript – Jquery / ajax循环SetTimeout

嗨,我被困在我的setTimeout函数上.我想要做的是循环我的setTimeout为我的检索对话功能..我在setInterval上尝试了这个但是使用setInterval是我的应用程序的坏消息,这就是为什么我切换到setTimeout ..但我似乎无法弄清楚如何使setTimeout在完成加载后再次工作..这是我到目前为止所尝试的并且仍然试图让它在此刻工作..

使用Javascript:

id = setTimeout(function()
{
    $.ajax(
    {
        url: "includes/handlechat.PHP",
        type: "GET",
        data: data,
        dataType: 'json',
        success: function(result)
        {
            $("#clog").empty();
            $.each(result, function(rowKey, row) 
            {
                $("#clog")
                    .append('<p ><h4>'+ row.username +':</h4>' + row.message_content + '</p>' );
            });
        },
        complete: function () 
        { 
            clearTimeout(id);
        }
    })
}, 1101);

有什么提示或建议吗?

解决方法:

将代码放在函数中并在成功或完整处理程序中调用它:

function load() {
    setTimeout(function () {
        $.ajax({
            url: "includes/handlechat.PHP",
            type: "GET",
            data: data,
            dataType: 'json',  
            success: function (result) {
                $("#clog").empty();
                $.each(result, function (rowKey, row) {
                    $("#clog").append('<p ><h4>' + row.username + ':</h4>' + row.message_content + '</p>'); 
                }); 
            },
            complete: load
        });
    }, 1101);
}
load();

您还可以使用IIFE来避免在当前环境中创建另一个绑定:

(function load() {
   // setTimeout here
}());

javascript – jQuery mouseenter / mouseleave html() – 交换问题

javascript – jQuery mouseenter / mouseleave html() – 交换问题

我有以下Javascript / jQuery函数:

function addEventHandler(){

    $("div").mouseenter(function() {
        $(this).html("Over");
    }).mouseleave(function() {
        $(this).html("Out");
    });

}

它有效但不完美. div有时会略微重叠(不要问),并且如下图所示,它们并不总是得到“Out”值.特别是当我将指针快速移动到它们上面时会发生这种情况.

任何想法如何确保每个div在mouseleave上获得“Out”值?谢谢!

更新:真正的代码摘录

由于我的实际功能不像上面的例子那么简单,我在这里包含了真实函数的确切代码:

function addEventHandlers(){

    var originalContent = "";

    $(".countryspots div").mouseenter(function() {

        var thisClass = $(this).attr("class");
        var thisCountry = thisClass.split(" ");
        var thisNumber = getNumber(thisCountry[1]);

        originalContent = $(this).children("a").html();

        $(this).children("a").html("<span>" + thisNumber + "</span>");


    }).mouseleave(function() {

        $(this).children("a").html(originalContent);

    });

}

我的HTML标记是这样的:

<div>
    <div><a href="#"><span>Brazil</span></a></div>
    <div><a href="#"><span>Argentina</span></a></div>
    <div><a href="#"><span>Ireland</span></a></div>
    <divhttps://www.jb51.cc/tag/gal/" target="_blank">gal"><a href="#"><span>Portugal</span></a></div>
</div>

一般的想法是内部最多的国家名称< span>与一个代表在mouseenter上的员工的数字交换(从getNumber();中检索) – 然后在mouseleave上交换回来.

真正的问题是,当我将指针移动到另一个div时,许多div保留了他们的员工编号.换句话说:mouseleave事件不会在所有div上执行.

实例:http://jsfiddle.net/N9YAu/4/

希望这可以帮助.再次感谢!

解决方法:

您的问题是,对于一个只有一个变量来存储所有项目的“原始内容”,并且mouseenter处理程序也可以在mouseleave处理程序之前第二次调用,从而导致值“原始内容”变量被覆盖悬停内容.

您应该在脚本开头存储一次原始内容,并为每个项目分别存储它们.我在使用jQuery的数据函数:http://jsfiddle.net/N9YAu/5/的followign示例中完成了这个

注意,我用一个悬停绑定替换了你单独的mouseenter / mouseleave绑定.它最终可能是相同的,但这是“正确的方法”.

今天关于javascript – 如何在jQuery mouseout上应用原始样式的讲解已经结束,谢谢您的阅读,如果想了解更多关于javascript mouseover、mouseout停止事件冒泡的解决方案_javascript技巧、javascript – iPad上的jQuery mouseout、javascript – Jquery / ajax循环SetTimeout、javascript – jQuery mouseenter / mouseleave html() – 交换问题的相关知识,请在本站搜索。

本文标签:

上一篇php – 有没有安全的方法来允许跨站点AJAX请求?(php允许跨域访问)

下一篇php – 使用$.ajax从json_encode接收响应时获取parseerror(php接收ajax传的数据)