jQuery - 选择子 div 背景图像并修改它

发布于 2024-12-28 07:43:35 字数 643 浏览 0 评论 0原文

我正在寻找一种使用 jQuery 更改 div 背景图像的方法,但只是修改它,而不是完全改变它。

让我解释一下。

我使用 http://jqueryui.com/demos/sortable/#portlets 来显示一些 div那个打开和关闭。现在,当您单击 portlet 标题时,它会打开并关闭下面的内容。

在 portlet 标头内​​,我有一个子 div,它根据内容的当前状态显示一个箭头(向上或向下)。我需要一种通过在背景图像的 url 末尾添加“-visible”来更改此子 div 上的背景图像的方法。

我什至不知道从哪里开始这样做,但我在下面添加了一些代码供您查看。

http://jsfiddle.net/45jZU/

从那里的小提琴中,我需要更改的背景图像portlet 标头内​​的 portlet-arrow div。我不能简单地一起更改背景图像,但我已将其简化并发布在此处。

我希望这不会太狭窄,对 stackoverflow 上的其他人没有用处。

谢谢

Im looking for a way to change the background image of a div using jQuery BUT only amending it, not totally changing it.

Let me explain.

Im using http://jqueryui.com/demos/sortable/#portlets to show some div's that open and close. Now when you click the portlet header it opens and closes the content below.

Inside the portlet header i have a child div which shows an arrow (either up or down) depending on the current state of the content. I need a way of changing the background image on this child div by adding on "-visible" onto the end of the url for the background image.

I wouldnt even know where to start with doing this, but i have added some code below for you to look at.

http://jsfiddle.net/45jZU/

From the fiddle there, i need to alter the background image of the portlet-arrow div inside portlet header. I can not simply change the background image all together, but i have simplified it down to post on here.

I hope this isnt too narrow to not be of use to anyone else on stackoverflow.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

待"谢繁草 2025-01-04 07:43:35

也许我在这里遗漏了一些东西,但是你不能对所选的 jQuery 对象使用 .css 属性修饰符吗?比如:

var current_background = $("#my-div").css("background-image");
$("#my-div").css("background-image", current_background + "-visible");

如果你想修改类名本身,你可以尝试使用 .toggleClass().hasClass()。 jQuery 中的 addClass() 和 .removeClass() 方法。

我希望这会有所帮助,但如果我完全错过了这里的目标,请告诉我!

Maybe I'm missing something here, but can't you use the .css attribute modifier for the selected jQuery object? Something like:

var current_background = $("#my-div").css("background-image");
$("#my-div").css("background-image", current_background + "-visible");

If you're looking to modify the class names themselves, you can try mess around with the .toggleClass(), .hasClass(), .addClass() and .removeClass() methods in jQuery.

I hope this helps, but let me know if I've missed the mark here completely!

风尘浪孓 2025-01-04 07:43:35

我个人会选择使用 css 类来更改背景图像。如果您决定之后更改图像,则无需更改 javascript。使用 javascript 来编码小部件的行为(而不是视觉方面)是一个更好的解决方案。

因此,您有以下 css:

.portlet-header {
    background-image: url(<an image>);
}

.portlet-header.collapsed {
    background-image: url(<an other one>);
}

将此行添加到您的 javascript 以切换 collapsed 类:

$(".portlet-header").click(function() {
    ...
    $(this).parent().toggleClass('collapsed');
});

如果您的小部件开始折叠,请首先添加该类。

演示

I would personnaly go for using css classes to change the background image. If you decide to change the image afterwards, you won't have to alter your javascript. It is a better solution to use javascript to code the behavior of the widget, not the visual aspect.

So you have the following css:

.portlet-header {
    background-image: url(<an image>);
}

.portlet-header.collapsed {
    background-image: url(<an other one>);
}

Add this line to your javascript to toggle the collapsed class:

$(".portlet-header").click(function() {
    ...
    $(this).parent().toggleClass('collapsed');
});

If you widgets starts collapsed, initially add the class.

DEMO

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文