有没有办法在jQuery中检查是否有父,祖父,曾祖父有一个类.
我有一个标记结构让我在代码中做了这样的事情:
$(elem).parent().parent().parent().parent().hasClass('left')
Run Code Online (Sandbox Code Playgroud)
但是,为了代码可读性,我想避免这种事情.有没有办法说"任何父母/祖父母/曾祖父母都有这门课程"?
我正在使用jQuery 1.7.2.
我宁愿认为这不会那么难以找到,但是看起来很难找到一个很棒的跨设备文章,就像你期望的那样.
我想创建一个链接,打开移动设备的浏览器并浏览谷歌地图或打开地图应用程序(Apple地图或谷歌地图)并直接启动路线,即:从当前位置开始,在给定点结束(纬度/经度).
我可以测试两个设备(在browserstack旁边),Android和iPhone.
以下链接仅适用于Android:
<a href="http://maps.google.com/maps?daddr=lat,long&ll=">Take me there!</a>
Run Code Online (Sandbox Code Playgroud)
点击iPhone Chrome浏览器中的此链接,奇怪地在桌面版中打开谷歌地图,并在移动应用上播放广告...
这只适用于iOS,打开Apple Maps,要求我输入一个起始位置(我可以选择"当前位置")并启动route =所需行为.在Android上单击此链接完全失败:
<a href="maps://maps.google.com/maps?daddr=lat,long&ll=">Take me there!</a>
注意maps:// protocol.
是否有一种优雅的交叉设备方式来创建这样的链接?一个适用于所有主流手机的链接?
谢谢
更新:找到解决方案(有点)
这就是我想出来的.这不是我想象的,尽管它正在发挥作用.
var ua = navigator.userAgent.toLowerCase(),
plat = navigator.platform,
protocol = '',
a,
href;
$.browser.device = ua.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera/i) ? ua.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera/i)[0] : false;
if ($.browser.device) {
switch($.browser.device) {
case 'iphone':
case 'ipad':
case 'ipod':
function iOSversion() {
if (/iP(hone|od|ad)/.test(navigator.platform)) {
// supports iOS 2.0 and later: <http://bit. ly/TJjs1V>
var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || …Run Code Online (Sandbox Code Playgroud) 我们正在构建一个带有音频播放器的Drupal站点,该站点应该在您浏览页面时继续播放(类似于soundcloud).
目前我们正在<a>使用ajax 加载clicked 的网站并将html注入页面并使用history.js来操作该位置.
但是有一个主要的缺点:
由于新加载的页面上可能有不同的css和js,我们必须将当前脚本,样式和链接元素与ajax响应文本(丑陋的正则表达式)进行比较,并且只添加新的但不存在的元素.通过这样做,加载另一个页面一旦执行脚本就不会删除/删除/撤消.这可能会成为一个性能问题(反正是针对标记的正则表达式).
使用iframe可以解决这个问题和其他问题:
首次单击站点上的链接时,页面内容将替换为仅加载页面的iframe.音频播放器位于原始dom中,即在iframe之外.单击iframe内的链接可以在历史API中捕获并使用.
所以,虽然我从未想过我会这么认为:我认为使用iframe可能是更好的选择,不是吗?
PS:我的主要问题是我无法控制网站上的不同页面有不同的脚本,样式确实没问题.如果网站上只有一个巨大的静态js和css,我没有遇到任何问题.
更新
除了在iOS中,iframe解决方案工作正常.iframes就像地狱一样.不过,我认为我们将采用iframe解决方案.
假设我有这样的地图:
var map = {"a" : 100, "b" : 200, "c": 700};
Run Code Online (Sandbox Code Playgroud)
我想要一个包含"a"100次,"b"200次和"c"700次的数组:
map_array = [a, a, a, a, ... a, b, b, b, ... b, c, c, c, ... c]
Run Code Online (Sandbox Code Playgroud)
简单的解决方案是循环频率时间并推入数组:
var map_array = []
for(key in map)
{
for(var i=1; i <= map[key] ; i++)
{
map_array.push(key)
}
}
Run Code Online (Sandbox Code Playgroud)
但这显然需要时间来处理大数据的过程,我们是否可以努力使上述功能更有效?
所以我在SO上阅读了这个问题,但它对我没有任何帮助.我想将Gmail生成的mbox文件导入另一个webmail服务,但问题是每次导入只允许40 MB的大文件.
所以我不得不将mbox文件拆分为max.40 MB大文件并一个接一个地导入它们.你会怎么做?
我最初的想法是使用另一个脚本(formail)将每个邮件保存为单个文件,然后运行脚本将它们组合到40 MB的大文件中,但我仍然不知道如何使用终端执行此操作.
我也查看了split命令,但我担心它会切断邮件.谢谢你的帮助!
IE处于最佳状态:
有一个带有HTML文档的USB记忆棒.当用户在IE11中打开它并且脚本被阻止时,会出现一个提示,允许这些脚本运行.
当您单击允许时,该站点似乎重新加载,但它看起来像一个新选项卡打开/关闭.
启用JS后,您将被重定向到该站点的在线版本.
现在,在网站上有一个视频,在10秒后开始自动播放.但是在IE11中,几秒钟后同一个视频开始并行播放,所以你在这里发出两次声音.
当您检查DOM并删除<video>标记(只有1)时,一个视频停止播放.后来开始的那个继续玩.即使我访问另一个网站,视频仍然在播放.
只有关闭浏览器才会停止播放视频.
当我允许直接执行脚本时不会发生此行为.
使用video.js和jQuery.
有任何想法吗?
javascript activex html5-video video.js internet-explorer-11
我有一个非常大的div,使页面垂直和水平滚动条.
每隔几分钟,我希望刷新div的内容,所以我使用jquery get将div内容重新加载到div中.
问题是我不希望屏幕上用户正在看的地方被更改,我希望div重新加载,但是用户应该仍然看着div中的相同位置(意味着div应该不回滚到(0,0).
覆盖HTML与$("#mainwrapper").html的(数据)div时什么有时会发生;中,DIV是暂时空的,所以它收缩,然后再填充,但现在的用户是在(0,0 )
希望这是有道理的.
我的一个朋友在这个简单的html/css任务中遇到了问题:http://jsfiddle.net/kaHzY/6/
问题是,.headline的margin-top被向下推#main div,虽然它应该直接跟随nav之间没有任何空间.
添加div .inner了padding的1px解决了这个问题.在.headline仍有余量,但并没有推下来#main div了.
我知道这种行为,但我无法解释.你怎么解释这一点,特别是对那些正在学习CSS的人?为什么它表现得那样?
谢谢
我正在使用 Drupal 7 和 SMTP 模块。Gmail(工作应用)帐户使用两步验证和应用密码,以便网站可以使用 SMTP 进行身份验证。到目前为止还好。
问题是用户帐户,说不johndoe@domain.com应该是发件人地址,而是info@domain.com应该。info 已经是johndoe.
我们必须使用johndoe来实际进行身份验证,别名对此不起作用。但是,尽管调试info@domain.com中的发件人地址是,但在我的邮件应用程序中,发件人似乎仍然是johndoe@domain.com。
有任何想法吗?
编辑:我读到 Google SMTP 服务会使用用户帐户覆盖发件人地址。即使发件人地址是现有别名?
这真的很奇怪。
我有几个对象:
var a = { "abc": {}, "def": {}, "ghi": {} };
var b = { "abc": {}, "ghi": {}, "jkl": {}, "mno": {} };
var c = { "abc": {}, "ghi": {}, "xyz": {}, "mno": {} };
Run Code Online (Sandbox Code Playgroud)
我想知道如何获取所有属性中存在的属性名称:
var d = getOmniPresentProperties(a, b, c);
function getOmniPresentProperties() {
// black magic?
}
Run Code Online (Sandbox Code Playgroud)
所以d应该是["abc", "ghi"]
要比较的参数/对象的数量可能会有所不同,所以我不确定如何处理.有任何想法吗?
javascript ×4
html ×3
jquery ×3
activex ×1
ajax ×1
android ×1
arrays ×1
bash ×1
bounds ×1
css ×1
drupal ×1
drupal-7 ×1
email ×1
get ×1
gmail ×1
google-maps ×1
html5-video ×1
iframe ×1
ios ×1
jquery-1.7 ×1
margin ×1
mbox ×1
mobile ×1
object ×1
performance ×1
properties ×1
smtp ×1
terminal ×1
video.js ×1