假设我在iframe中放置了同一个域的页面.在iframe中,我已经向元素添加了数据,如下所示:
HTML
<div id="data"></div>
Run Code Online (Sandbox Code Playgroud)
脚本
$('#data')
.data('test1', 'this is test data 1')
.data('test2', ['John', 'Smith'])
.data('test3', {
alert1: function() {
$('#data').append('test3: successful<br>');
}
})
Run Code Online (Sandbox Code Playgroud)
现在,一旦这个页面在iframe中,我知道我可以按如下方式访问该元素:
$('#frame').contents().find('#data');
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从该元素获取数据时,它总是未定义的.
$('#frame').contents().find('#data').data('test1'); // shows up as undefined
Run Code Online (Sandbox Code Playgroud)
我知道jQuery存储data()在一个cache对象内部,但我不知道如何从该文档外部访问它.我设置了这个演示来显示我的问题.单击"获取帧数据"按钮以查看结果.
我会感激任何输入:)
我想添加一个可以在输入具有焦点时使用的热键,并将用于切换搜索结果。
我想这个问题更笼统,因为我想知道要避免使用哪些热键,以免与任何内容发生冲突。我找到了这个热键列表,但我怀疑任何地方都有完整的列表。因此,通过查看该列表,我想我会避免以下内容:
所以,剩下的:
还有其他我不知道的应该避免的组合键吗?
好的,我在这里回答某人的问题,关于为什么他们的剧本不起作用.他们将内容加载到隐藏的div中,然后获得高度,以便他们可以为包装div设置动画.但我总是试着测试我提供的代码.所以我做了这个演示来向他们证明.
那么,嗯,我进入了暮光之城还是我现在正在做梦?捏自己!
我在Firefox,IE和Chrome中尝试了这个演示,两种方法都返回相同的值.Firebug说零!我重新启动了我的计算机,我甚至更改了代码(删除了高度函数)并尝试使用jQuery 1.3.2并且它仍然有效!我知道的隐藏要素USED回到零值.即使这个SO答案也给出了我的建议!
所以我想我的问题是......我错过了什么或者我们给出了不好的建议吗?
这可能听起来很奇怪,但我正在研究一个需要在div中找到元素的插件,或者div本身.
脚本根据用户选择查找元素,但内容(包括标记)是可变的.因此脚本将按如下方式查找元素:
$('.block').find(selector); // selector set by user
Run Code Online (Sandbox Code Playgroud)
但是没有一种简单的方法让选择器选择'.block'.在使用find之前选择父级不是解决方案,因为有多个".block"元素.
我知道扩展expr[":"]选择器不会起作用,因为它只是在寻找孩子.但是,我确实通过制作一个':self'选择器找到了一种方法来" 破解 "这种方法:
(function($){
var orig = $.fn.find;
$.fn.find = function(sel){
return (sel === ':self') ? this : orig.call(this,sel);
}
})(jQuery)
Run Code Online (Sandbox Code Playgroud)
但这似乎有点过头了.而且每次查找函数都会减慢jQuery的处理速度.还有另一种方法吗?
谢谢你的回答!但我最终做到了这一点:
var b = $('.block'),
el = (b.is(selector)) ? b : b.find(selector);
Run Code Online (Sandbox Code Playgroud) 我有一个嵌入了youtube视频,我希望应用YouTube API.我使用jQuery添加url参数如下(demo):
$(document).ready(function(){
var obj = $('object');
obj.find('embed').attr('src', function(i,s){return s+'&enablejsapi=1&version=3'})
obj.find('param[name=movie]').attr('value', function(i,v){return v+'&enablejsapi=1&version=3'})
$('.play').click(function(){
obj.find('embed')[0].playVideo();
});
$('.pause').click(function(){
obj.find('embed')[0].pauseVideo();
})
});
Run Code Online (Sandbox Code Playgroud)
这种方法在Firefox中运行良好,但在IE或Chrome中根本不适用(不确定其他浏览器).所以我的问题是如何修改它以使API在其他浏览器中工作?我是否必须完全删除对象并使用SWFObject替换它?
注意:嵌入代码直接来自YouTube.
更新:我想出如果我删除对象,添加url参数然后添加对象,我现在可以让它在Chrome中工作,但仍然不是IE(更新演示).
附录:当对象/嵌入已经包含启用代码时,为什么YouTube API不起作用?我试图避免使SWFObject成为一种依赖.
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="385">
<param name="movie" value="http://www.youtube.com/v/2Qj8PhxSnhg&hl=en_US&fs=1&enablejsapi=1&version=3"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/2Qj8PhxSnhg&hl=en_US&fs=1&enablejsapi=1&version=3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed>
</object>
Run Code Online (Sandbox Code Playgroud) 这个EPGP魔兽世界插件输出一个epgp.lua数据库文件.
我写了一个插件,将Lua数据转换为JSON对象,以便在公会网站上显示.它在旧版本的插件中工作,但现在我无法让它正确地转换文件.以下是显示转换问题的两个片段 - 请参阅此演示.
第一个非常适合形成嵌套数组:
["roster_info"] = {
{
"Agantica", -- [1]
"ROGUE", -- [2]
"09/03-2013", -- [3]
}, -- [1]
{
"Intikamim", -- [1]
"PALADIN", -- [2]
"17/02-2013", -- [3]
}, -- [2]
},
Run Code Online (Sandbox Code Playgroud)
变
"roster_info" : [
[
"Agantica",
"ROGUE",
"09/03-2013"
],
[
"Intikamim",
"PALADIN",
"17/02-2013"
]
]
Run Code Online (Sandbox Code Playgroud)
但是当字符串替换应该是数组中的对象时,字符串替换将此下一个片段视为嵌套数组:
["bonus_loot_log"] = {
{
["player"] = "Magebox",
["timestamp"] = "2013-03-07 13:44:00",
["coinsLeft"] = "-1",
["reward"] = "|cffa335ee|Hitem:86815:0:0:0:0:0:0:632235520:90:0:445|h[Attenuating Bracers]|h|r",
}, -- [1]
{
["player"] …Run Code Online (Sandbox Code Playgroud) 我试图找出这是否是获取具有的div容器的可见性状态的正确方法 position: absolute。
我在视口的左侧有一个侧边栏。单击“边栏按钮”时,“边栏”会在可见区域之外进行动画处理。
jQuery的:
$('#sideBarButton').click(function(){
sidebar = $("#sideBar").outerWidth();
if(!$("#sideBar").hasClass('outof'))
{
$("#sideBar").animate({left: screenW},100).addClass('outof');
$("#boardContent").animate({width: screenW},200);
$("#sideBarButton").animate({left: "+=" + (sidebar -3)},100);
}
else
{
$("#boardContent").animate({width: bcW}, 50);
setTimeout(function(){
$("#sideBar").animate({left: screenW - sidebar}, 200).removeClass('outof');
$("#sideBarButton").animate({left: "-=" + (sidebar -3)},200);
}, 120);
}
$(this).find('img').toggle();
});
Run Code Online (Sandbox Code Playgroud)
由于sidebar现在根本不可见(对我而言),并且sidebar的左侧位置大于document.width,所以我的问题是我可以像这样获取(sideBar)的可见状态:
if($("#sideBar").is(":visible"))...
Run Code Online (Sandbox Code Playgroud)
或者,还有更好的方法?我的意思是jQuery如何确定某个元素是否可见?
我已经在我的闪存驱动器上安装了便携式git版本,但我不希望我的存储库与程序位于同一目录中.我可以使用以下命令到达目录:
$ git -- git-dir=../Gits --work-tree=..Gits
Run Code Online (Sandbox Code Playgroud)
但我不想每次都输入.所以,我在发现这篇文章的gitconfig文件.但它只显示如何设置core.worktree
core.worktree
设置工作树根目录的路径.这可以通过GIT_WORK_TREE环境变量和--work-tree命令行选项覆盖.它可以是.git目录的绝对路径或相对路径,由--git-dir或GIT_DIR指定,或自动发现.如果指定了--git-dir或GIT_DIR但未指定--work-tree,GIT_WORK_TREE和core.worktree,则将当前工作目录视为工作树的根.
请注意,即使在目录的".git"子目录中的配置文件中设置此变量,并且其值与后一目录不同(例如"/path/to/.git/config"已设置core.worktree),此变量也会受到尊重. to"/ different/path"),这很可能是一个配置错误.在"/ path/to"目录中运行git命令仍将使用"/ different/path"作为工作树的根目录,并且可能会对用户造成很大的混淆.
我试过这些设置无济于事.
[core]
worktree = ../Gits
gitdir = ../Gits
Run Code Online (Sandbox Code Playgroud)
有没有人知道为Windows 设置PortableGit-1.7.0.2-preview20100309.7zgit-dir和work-tree目录的方法所以我不必一直输入?
还有一种方法可以添加密码,所以我不必在其中输入密码吗?我看到了这些说明,但便携版本显然没有~/.profile或~/.bashrc文件.
Mottie有一个出色的jQuery屏幕键盘插件:https: //github.com/Mottie/Keyboard
默认情况下,键盘上的文本会进入其他输入,然后可以接受或取消.如果文本被接受,则进入源textarea/input.
但是有没有办法直接从键盘输入到源textarea /输入而不需要接受它(比如android/ios上的移动键盘)?

jquery ×6
javascript ×3
css ×2
data-url ×1
git ×1
git-config ×1
github ×1
hotkeys ×1
iframe ×1
image ×1
lua ×1
replace ×1
windows ×1
youtube-api ×1