- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的实际问题是 .live() jQuery 方法不起作用。
这是我使用它的代码:
jQuery.fn.sb_animateMenuItem = function()
{
var mousehoverColor = '#0089F7';
var duration = 250;
return this.each(function()
{
var originalColor = $(this).css('background-color');
$(this).live('mouseover', function()
{
this.style.cursor = 'pointer';
$(this).animate().stop();
$(this).animate(
{
backgroundColor: mousehoverColor
}, duration);
});
$(this).live('mouseout', function()
{
this.style.cursor = 'default';
$(this).animate(
{
backgroundColor: originalColor
}, duration);
});
});
};
这个片段以这种方式在另一个页面中使用:
<script type="text/javascript" src="ui/js/jquery-1.4.2.js"></script>
<script type="text/javascript" src="ui/js/jquery-ui-1.8.1.custom.min.js"></script>
<script type="text/javascript" src="ui/js/color.js"></script>
<script type="text/javascript" src="engine/js/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript" src="ui/js/ui.js"></script>
<script type="text/javascript">
// UI effects
$(document).ready(function()
{
$('button').sb_animateButton();
$('input').sb_animateInput();
$('.top_menu_item').sb_animateMenuItem();
$('.top_menu_item_right').sb_animateMenuItem();
$('.left_menu_item').sb_animateMenuItem();
});
</script>
因为我的网站使用 AJAX 请求,所以我在第一个片段中使用了 .live 方法,但是当我加载页面时,效果没有应用到按钮/输入...标签。
如果我删除 .live 方法并使用“正常”方式,则会应用第一个片段中定义的 ui 效果,但只会应用在任何 AJAX 请求之前加载的元素。在 ajax 请求之后加载的元素不受第一个片段的影响(尽管它们具有相同的选择器)。
感谢您的帮助。
最佳答案
简而言之,你不能使用.live()
像这样,它必须遵循某种选择器基础,这是 from the .live()
docs :
DOM traversal methods are not fully supported for finding elements to send to
.live()
. Rather, the.live()
method should always be called directly after a selector, as in the example above.
您在表示特定 DOM 元素的 jQuery 对象上调用 .live()
,而您需要获取 .selector
运行的插件,如果有一个,当然这不能保证,然后将那个用于.live
,像这样:
jQuery.fn.sb_animateMenuItem = function() {
$(this.selector).live(.....)
如果你想一想,.live()
是如何做到的?工作?它监听事件冒泡,检查目标是否匹配一个选择器,如果是则执行(在上下文中,这是一个完整的其他讨论)...如果你做了$(DOMElement ).live()
,它正在检查哪个选择器是否应该执行?
我想您可能会根据内部元素 uuid 争论这应该 工作,但话又说回来这只是一个 .bind()
,这会减少浪费,所以 .live()
不会做那样的事情。
更新:因为我很好奇无需重复代码即可实现此功能的最简单方法,这里有一个选择 .live()
的插件版本或 .bind()
动态地,基于是否存在 .live()
的选择器使用:
jQuery.fn.sb_animateMenuItem = function() {
var mousehoverColor = '#0089F7';
var duration = 250;
var method = this.selector ? jQuery.fn.live : jQuery.fn.bind;
method.apply(this, ['mouseover', function() {
if(!jQuery.data(this, 'oColor'))
jQuery.data(this, 'oColor', jQuery(this).css('background-color'));
jQuery(this).stop(true).animate({ backgroundColor:mousehoverColor }, duration);
}]);
method.apply(this, ['mouseout', function() {
jQuery(this).animate({ backgroundColor:jQuery.data(this, 'oColor') }, duration);
}]);
return this.css('cursor', 'pointer');
};
关于php - jQuery .live() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3031960/
我在使用 jquery 1.9.1 时遇到问题。我已经搜索过,但这些都没有解决我的问题。 $('.sm2_expander').live('click', function() { $
有些 Live CD 可以启动操作系统并允许您无需安装即可使用它。 我想知道是否有一种简单的方法来自定义 Live CD,以便它只加载运行一个应用程序所需的内容,然后运行该应用程序。 最佳答案 对于
当我从 Live CD 启动 Linux Mint 时,我能够将文件保存到“文件系统”。但这些文件保存在哪里呢?不可能是光盘,因为它是 CDR。我不认为它存储在 RAM 中,因为它只能保存这么多数据,
我正在尝试 ZIO . 我不明白为什么要添加Live作为Trait,然后提供一个object,比如: object Live extends Live 在不同的地方可以找到这种模式,例如 zio.co
我正在尝试播放 RTSP 直播流媒体网址“rtsp://164.100.51.207/broadcast/DDLive”。但我收到此错误 (1,-1)。 我正在尝试这段代码 VideoView myV
如何更改标签的 html,如下所示: $('#someId').html('foo bar'); 使用 live() 或 delegate() 函数时?只是为了澄清,我不希望这种情况发生在悬停、焦点或
我在这里没有看到很多关于 Microsoft 提供的 xbox live api 的帖子。谁能给我指一个有活跃的 xbox live api 社区的网站? 最佳答案 这是相当模糊的,所以我会提供一个广
我有一个带有 class="centerMessage" 的 div 。该 div 会在页面加载后的某个时刻插入到 DOM 中。我想更改此 div 上的 CSS 以使其居中。我尝试了下面的CSS功能,
我正在开发一个应用程序,我需要将通过智能手机的摄像机(在 iPhone 和 Android 手机上)捕获的视频流式传输直接到 YouTube Live。 我研究了 Codename One 的 Cap
当使用 DLT 时,我们可以使用 STREAMING LIVE TABLE 或 LIVE TABLE 创建一个实时表,如文档中所写: CREATE OR REFRESH { STREAMING LIV
所以,我在一个网站上工作,我希望用户能够使用他们的 xbox 帐户登录,将他们的玩家标签链接到我的网站。我可以像这样使用 oauth: 但是,我不知道如何获得 xbox live 权限。执行此操作的其
我正在使用苹果的 http 实时流媒体将实时视频流式传输到 ipad/iphone。其中一个重要的步骤是将传输流与播放列表一起分割成几个 ts 段。根据苹果的文档,推荐的 ts 段持续时间为 10 秒
我正在尝试实现“使用 Outlook.com 登录”流程,其中涉及客户端和服务器代码。 流程是: 从客户端将用户重定向到: https://login.live.com/oauth20_authori
如果您使用 YouTube 直播打开广播“事件”,用户可以使用回放功能,让他们无需离开界面即可观看过去 3 小时的广播 - 您可以像观看视频一样轻松观看,但您仍处于广播中,您只需控制过去缓冲的分钟数。
我有一个使用 HTTP Live Streaming 传送视频内容的应用程序。我希望应用程序根据设备屏幕尺寸(4x3 或 16x9)检索适当的分辨率。我运行 Apple 的工具来创建主 .m3u8 播
我有一个使用 HTTP Live Streaming 传送视频内容的应用程序。我希望应用程序根据设备屏幕尺寸(4x3 或 16x9)检索适当的分辨率。我运行 Apple 的工具来创建主 .m3u8 播
super 快的。这是我的 .gitignore(在我的 repo 的根级别 # Makefile stuff LIVE-* .install-post-all 当我这样做时,LIVE-* 位不起作用
因此,我在 Gamasutra 阅读了 John Carmack 的采访,其中他谈到了他所谓的“存在于内存映射文件中的实时 C++ 对象”。以下是一些引用: JC: Yeah. And I actua
在教师端对类(class)进行更改后,有预览更改和查看实时版本的选项,但目前这两个选项都无法正常工作,我们必须在 URL 中附加基本 url (www.abc.com/)是时候预览更改或查看实时版本了
有人可以详细说明aria-live="assertive"之间的区别吗?和 aria-live="polite" ? 据我了解 aria-live="assertive"将获得更高的优先级并清除队列,
我是一名优秀的程序员,十分优秀!