【问题标题】:Setting jQuery offset through variable通过变量设置jQuery偏移量
【发布时间】:2015-01-26 06:22:50
【问题描述】:

我正在尝试通过 jquery 放置一个 div,如果我将 top 和 left 的常量值放入以下代码,则以下代码有效: $(divToAdd).offset({ left:TableX[i] , top:TableY[i]} ) ; 而不是数组,我还尝试 alert() 正在工作的 TableX[i] 的值。

var divToAdd ;
        var TableX=[] ;
        var TableY=[] ;
    var TableX = <?php echo json_encode($TableX);?> ;
            var TableY=<?php echo json_encode($TableY);?> ;
            for(i = 1 ; i <= <?php echo $num ;?>; i++)
            {divToAdd = $("<div></div>");
            $(divToAdd).addClass('dragged1');
            $(divToAdd).offset({ left:TableX[i]  , top:TableY[i]})  ;
            $('#frame').append(divToAdd);
            }

included this php file :

    <?php 
        include('connect.php') ;
        $cnt_table;
        $TableX = []; 
        $TableY =[];
        $result = mysql_query("SELECT DISTINCT TableX , TableY FROM layout ");
        $num_rows = mysql_num_rows($result);
        $num=$num_rows;
        while($row = mysql_fetch_assoc($result)) { 

                $TableX[$num_rows] = $row['TableX'] ;
            $TableY[$num_rows] = $row['TableY'];
        //echo $TableX[$num_rows]."\n" ;
        //echo $TableY[$num_rows]."\n";
        $num_rows--;

        } 
    ?>

开明的人,引导我度过这个......

【问题讨论】:

  • 请贴出浏览器看到的实际代码。我们无法将您的 php 处理成未知数组。
  • 已更新,请看。问题在于 Table[i] ,它没有考虑获取的值。
  • 这不是浏览器的javascript源代码。浏览器不运行 php。此外,您的数组长度仅为 1,因为您在循环的每次迭代中都会覆盖相同的索引
  • 这是创建 div 所需的唯一代码。我已经粘贴了完整的 javascript 。你能告诉我哪个部分被覆盖了吗?
  • $num_rows-- 在最后,我已经回显了要检查的值,其次所有不同的值也都存储在数据库中,所以问题似乎出在 javascript 中。

标签: jquery css offset


【解决方案1】:
I have found a solution , Although still did not understand what is wrong with offset() .
The new code is : 

var divToAdd ;
        var TableX=[] ;
        var TableY=[] ; 
        var TableX = <?php echo json_encode($TableX);?> ;
        var TableY=<?php echo json_encode($TableY);?> ;
        for(i = 1 ; i <= <?php echo $num ;?>; i++)
        {
            //alert(TableX[i]);
        divToAdd = $("<div></div>");
        $(divToAdd).css('top' , + TableY[i] );
        $(divToAdd).css('left' , +TableX[i] );
        $(divToAdd).addClass('dragged1');
        $(divToAdd).attr("id","table"+i);
        //$(divToAdd).offset( {left:TableX[i]  , top: TableY[i]} );
        $('#frame').append(divToAdd);
        }

添加的行是:

$(divToAdd).css('top' , + TableY[i] );
$(divToAdd).css('left' , +TableX[i] );

感谢回复的人...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-03
    • 2011-12-07
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多