【问题标题】:Click in one div and change background image in other div单击一个 div 并更改另一个 div 中的背景图像
【发布时间】:2016-01-05 16:40:56
【问题描述】:

我试图通过点击一个 div 和另一个 div 更改背景图像:

<div class="stileone" value="http://lorempixel.com/200/200/">
<img scr="http://lorempixel.com/200/200/"> 
</div>

<div class="stileone" value="http://lorempixel.com/150/150/">
    <img scr="http://lorempixel.com/150/150/"> 
</div>

<div id="stileone">
    Div Content
</div>

jQuery:

$(".stileone").on("click", function() {
    $('#stileone').css('background-image', 'url(' +.val()+ ')');
}); 

但这不起作用

感谢您的帮助

【问题讨论】:

  • 另请注意:在示例中,您的图片上有 scr 而不是 src :)

标签: jquery background


【解决方案1】:

您似乎错过了从被点击元素的 value 属性中获取 URL:

$(".stileone").on("click", function() {
    $('#stileone').css('background-image', 'url(' + $(this).attr('value') + ')');
}); 

另请注意:在示例中,您的图片上有 scr 而不是 src :)

JSFiddle: https://jsfiddle.net/TrueBlueAussie/cfvLk6dL/

结果:

【讨论】:

  • 图像没有出现,但在代码源中 jquery 工作:&lt;div id="alter" style="background-image: url("/uploads/images/type/myimage.png");"&gt; &lt;/div&gt; 如果我把../uploads/images/... 出现错误 404 到图像
  • 使用 Chrome 对我来说效果很好。你用什么浏览器测试?
  • 添加了屏幕截图.. 不知道为什么你没有使用我的 JSFiddle 获得图像...奇怪(巧合的是它显示了澳大利亚!):(
  • 是的,它在 JSFiddle 中工作,感谢您的帮助,也许我的代码有问题
  • 你的 实际代码放入 JSFiddle 并发布链接,这样我就可以看到哪里出了问题。
【解决方案2】:

val 方法在这种情况下是错误的。

如果你想根据 div 的 value 属性改变背景,你应该使用 $(this).attr("value") 或 this.value

但是如果你想根据点击的图片源来改变背景 你应该试试 $(this).attr("src") 或 this.src

您还需要将 div 的选择器更改为类似 $(this).closest("div")

$(".stileone").on("click", function() {
    $(this).closest("div").css('background-image', 'url(' +.$(this).attr("src")+ ')');
}); 

【讨论】:

  • 这里有几个问题(包括输入错误)。原版确实以#stileone 的基于ID 的元素为目标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多