javascript - mouseenter mouseleave 在 iframe 的内容中

标签 javascript jquery iframe mouseover mouseenter

我试图突出显示 iframe 中的元素,但没有成功。我尝试使用 mouseenter/mouseleave 但没有成功。它不会触发。

$('#iframe').contents().mouseenter(function (e) {
    //var element = $(e.target);
    var element = $(this);

    $(element).addClass("highlight");
}).mouseleave(function (e) {
    $(element).removeClass("highlight");
});

我在 mousemove 方面取得了更好的成功,但是它也突出了我不想要的 parent 。

var prevElement;
$('#iframe').contents().find('html').on('mousedown', function (e) {
    e.stoppropagation()
    //e.preventDefault - did not work either
    var element = $(e.target);


    if (prevElement == null) {
        prevElement = element;
        element.addClass("edit-element-selector");
    }
    else {
        if (prevElement != element) {
            prevElement.removeClass("highlight");
            //prevElement.parents().removeClass("highlight"); did not work
            element.addClass("highlight");
        }   
    }
});

HTML

<iframe id="iframe" srcdoc="@Html.Raw(ViewBag.html)"></iframe>

最佳答案

.hover 的 css 规则在 iframe 上下文中不可见。 要么使用 .css() 直接设置样式,添加 css 链接,要么使用 jQuery 将主文档中的所有样式克隆到 iframe 中。

这是一个工作 jfiddle,您应该可以轻松复制它。

http://jsfiddle.net/danmana/pMBw2/

关于javascript - mouseenter mouseleave 在 iframe 的内容中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28181832/

相关文章:

javascript - 为什么 document.getElementById(id).contentWindow 不适用于 Chrome 中的本地 htm 文件?

ios - 错误内部导航被拒绝 - <allow-navigation> IN

javascript - 无法从 $scope 获取值

javascript - 生成 YouTube 自定义播放列表问题

jquery - Angular 应用程序在 ng-view 部分中带有 jquery 插件

javascript - 使用 IE、Jsonp 和 OpenID 如何让数据发送服务器看到客户端已通过身份验证?

javascript - 响应式粘性汉堡导航栏

javascript - 使函数影响另一个页面中的元素

jquery - 使用 getJSON 从 asp.net 获取 JSON 不会返回任何内容

html - 当 iFrame 从本地 html 文件加载本地 html 文件时,Chrome 的 future 版本是否可能支持 contentWindow/contentDocument?