【问题标题】:cant add class in jquery无法在jquery中添加类
【发布时间】:2015-12-16 10:49:36
【问题描述】:

我正在尝试将类 (.trans) 添加到我在 jquery 中新创建的克隆中。 .但它不工作。 ... 当我将类直接应用于我的对象时,它可以完美地工作。

我想做的是..

  1. 我从数据库中获取一些图像到我的页面。
  2. 使用 foreach 循环我显示了这些图像..
  3. 然后在 jquery 克隆方法的帮助下,当我单击它时,我创建了特定图像的克隆,并且克隆将显示 在不同的 div 中。
  4. 现在我想将一个特定的类添加到我新创建的克隆中。但它不工作.. (注意:当我直接在新对象(不是克隆)上应用相同的类时,它的工作时间)

仅供参考最终结果应该是这样的,但是在克隆之后..http://jsfiddle.net/66Bna/293/

这是我的代码...

<?php 
$image = "1.jpg,2.jpg,3.jpg,4.jpg,5.jpg";

$image = explode(",", $image);
?>
<html>
    <head>
    <link rel="stylesheet" href="../css/jquery.freetrans.css">


    <link rel="stylesheet" href="../css/style.css">

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
        $(".my_image").click(function(){
            $(this).clone().addClass("trans").appendTo(".block");
        });
    });
    </script>

        <style>
            body{
                user-select: none;
                -webkit-user-select: none;
                -moz-user-select: none;
                -o-user-select: none;
                -ms-user-select: none;
            }

            .shape{
                width: 300px;
                height: 250px;
                background-color: #B2D237;
                color: #123456;
            }

            #bounds {
                position: absolute;
                border: 1px solid red;
            }

            .block{
                width:100%;
                background:red;
            }
        </style>

    </head>
    <body>

<div class="library">
    <ul>
    <?php
        foreach ($image as $key => $img) {
            echo "<li class='img_block'><img class='my_image' src='assets/$img'></li>";
        }
    ?>

    </ul>
</div>

<div class="block"></div>



        <script src="../js/Matrix.js"></script>
        <script src="../js/jquery.freetrans.js"></script>

        <script>
        $(function(){
                // do a selector group
                $('.trans').freetrans({
                    x: 50,
                    y: 50
                });

                //updating options, chainable
                $('#two').freetrans({
                    x: 200,
                    y: 100,
                    angle: 45,
                    'rot-origin': "50% 100%"
                })
                .css({border: "1px solid pink"})

                var b = $('#two').freetrans('getBounds');
                console.log(b, b.xmin, b.ymax, b.center.x);

                $('#bounds').css({
                    top: b.ymin,
                    left: b.xmin,
                    width: b.width,
                    height: b.height
                })
        })
        </script>



    </body>
</html>

【问题讨论】:

  • 尝试从$(".my_image").click(function(){ 更改为$document().click('click','.my_image' ,function(){
  • 我在小提琴中看不到任何类名为 my_image 的元素
  • 先生,这不是我的小提琴......在从元素克隆之后。我想要这些功能,这就是我分享那个小提琴的原因。

标签: php jquery transform clone


【解决方案1】:

好的,看。正在发生的事情是您在文档末尾激活了 Free Transform 插件,而插件所做的所有事情就是使用该类获取现有元素并赋予它们功能。

当我们动态添加元素和类时,插件不会考虑它们,因为在调用插件时,元素并不存在。

明白了吗?

所以,鉴于我没有合适的开发环境,我会提出一些可能的解决方案:

1) 将此脚本放在底部,在 Free Transform 插件声明下方

<script>
$(document).ready(function(){
    $(".my_image").click(function(){
        $(this).clone().addClass("trans").appendTo(".block");
    });
});
</script>

2) 为每个添加的元素初始化插件编辑:修复了一些逻辑错误

<script>
$(document).ready(function(){
    $(".my_image").click(function() {
        $(this).clone().appendTo(".block").freetrans({
           x: 50,
           y: 50
        });;
    });
});
</script>

暂时试试吧

【讨论】:

  • 对不起,这是一个错误。但是先生,为什么 .trans 类在克隆后不起作用
  • 哇,先生,您真是太棒了:) .... 非常感谢您.....我确实需要这个.. 再次感谢.....我很高兴..
  • 很高兴我能再次提供帮助!
  • 这是非常大的帮助。当我的申请完成时。我会告诉你...再次感谢您... :)
猜你喜欢
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
相关资源
最近更新 更多