【问题标题】:jquery does not change margin property.of a divjquery 不会更改 div 的边距属性。
【发布时间】:2013-07-26 17:42:39
【问题描述】:

这是我关于 JQuery 的第一个问题。

我有 3 个按钮。全部水平对齐,如下所示:

1st: Button                                                                                  3rd: Button

我有 1 个名为 popup 的 div。

如果我单击按钮 1,则 div 应显示为:

1st: Button                                                                                  3rd: Button

div: popup

如果我点击第二个按钮,那么它应该是:

1st: Button                                                                                  3rd: Button

                                                            div: popup

对于第三个按钮:

1st: Button                                                                                 3rd: Button

div: popup

使用 JQuery,我选择了元素。我计算按钮的左边距并将其存储在变量中。我使 div 不可见。然后我将该边距应用于 div。最后我让它可见。这是代码。

<script>
    $('img').click(function () {
        var clickedImageMargin = $(this).css('margin-left');
        alert(clickedImageMargin);
        $('#popup').hide();
        $('#popup').css({ 'margin-left': clickedImageMargin + 100 });
        $('#popup').show();
    });
</script>

但是 div 并没有改变它的位置。可能是什么问题?

【问题讨论】:

  • 你能提供一个jsFiddle吗?
  • jsFiddle 是什么意思?
  • 转到jsfiddle.net并创建一个包含您的html、css、javascript的页面,然后与我们分享

标签: jquery margin


【解决方案1】:
var clickedImageMargin = $(this).position().left;

【讨论】:

    【解决方案2】:

    问题是$(this).css('margin-left') 返回一个字符串,例如'200 像素' 如果加上 100,将使用字符串连接,因此您设置的值为 '200px100',这是无效的。

    【讨论】:

    • 是的。感谢您指出这个错误。现在我使用 parseInt()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    相关资源
    最近更新 更多