【问题标题】:retrieving background image from div when dynamically set动态设置时从div中检索背景图像
【发布时间】:2011-02-18 10:16:22
【问题描述】:

我在将#x 的背景图像设置为#y 的背景图像时遇到问题。

如果我错了,请纠正我,但我认为你会在一个简单的情况下这样做

$('#x').css('background-image',$('#y').css('background-image'));

问题在于,最初设置 y 时,是这样设置的:

<div id='y' style='background-image: url(./randomcolor.php?ibase=<?php echo $entity->name; ?>) ....

因此,当它执行此操作时,它会获取生成器的 URL,而 javascript 只是将其视为字符串。我必须在这里做一个ajax,还是有某种我可以使用的评估。

【问题讨论】:

  • 试试alert($('#y').css('background-image')); '因为它应该可以正常工作...让我们看看它会发出什么警报...

标签: jquery css dynamic background-image


【解决方案1】:

您的代码看起来不错。

你的问题的第二部分对我来说没有意义......你是说你的#x div 以./randomcolor.php?ibase=&lt;?php echo $entity-&gt;name; ?&gt; 的背景图片网址结束,而不是你所期望的./randomcolor.php?ibase=xyz .如果是这样,您的 PHP 代码就有问题了。 JQuery 只是 JavaScript,所以它只会处理客户端呈现的 HTML,如果该 HTML 包含 php 标签,那么你的页面的服务器端呈现就无法完成它的工作。

【讨论】:

  • 不,我并不是说 php 代码出现在不应该出现的地方:我只是展示了图像是如何设置的。在客户端,它实际上以完整的 URL 结束:blabla/randomcolor.php?ibase=xyz 它没有将#x div 的背景设置为#y div 的背景或任何东西。所以我假设它没有调用服务器函数。
  • @tixrus:仍然没有足够的信息来了解发生了什么(正如我所说的,您的代码看起来不错)。如果您根本没有 jquery 代码,您的 #y div 是否正确显示背景图像?如果您在#x 上手动设置背景图像,它是否显示正常?你能在它们之间复制其他 CSS 属性吗(比如$('#x').css('border', $('#y').css('border'));)?在诸如萤火虫之类的东西中,您是否可以看到背景图像样式信息被复制了,只是无法正确显示还是没有复制?
  • 我接受了这个答案,因为它提出了非常好的问题,即使解决方案在其他地方。 jquery 论坛的答案并不完全正确(实际上两种形式的背景图像和驼峰式版本都可以工作)但是在搞砸时我发现了与任何一个都没有真正关系的错误,老实说,如果我记得的话我会报告它它。
【解决方案2】:

http://forum.jquery.com/user/rickvhoeij 在 jquery 论坛中提供了回答这个问题的线索。 http://forum.jquery.com/topic/setting-background-image-to-another-div-s-dynamically-generated-image 其实代码不太好,当我把 background-image 改成 camelCase (backgroundImage) 然后它就开始工作了。 这是我永远看不到的那种错误!它就这么过去了,我们都习惯了,它很容易错过。 Alconja,我很欣赏你有用的探测问题。答案是肯定的,首先图形显示正常,除此之外其他一切都很好。现在我也意识到 Firefox 并不总是 Firefox。我开始在 Linux 上进行这项工作,然后我搬到了 Mac 上,而 Firebug 在这里看起来有点不同。我认为没有错误,因为 FB 没有像在 Linux 上那样标记它们。

呃!我们是习惯的视觉动物。

【讨论】:

  • 这很奇怪......这里显然还有其他微妙的事情发生,因为.css('background-image').css('backgroundImage') 实际上应该两者都可以工作(参见api.jquery.com/css),所以我认为您在 jquery(或浏览器)中偶然发现了一些模糊的错误,导致连字符版本失败,但 camelCase 版本在这个特定实例中工作(我无法复制它 - 它对我使用 @987654326 有效@)。无论哪种方式,很高兴你让它工作。 :)
  • 实际上,Alconja 你是对的,背景图像没有错,因为它适用于我的代码中只有静态图像的其他地方。有一些正常的错误更容易修复,但就像我说的那样,问题是我不习惯 Mac 平台上的显示。很抱歉,我不记得究竟是什么错误,因为 3 天前是这样的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-14
  • 1970-01-01
  • 2021-12-21
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多