0

偏移值,但控制台告诉我它没有定义:

ui is not defined

在我的 HTML 中包含 jquery 脚本:

 <script language="javascript" type="text/javascript"
        src="/templates/protostar/js/jquery.min.js"></script>
<script language="javascript" type="text/javascript"
        src="/templates/protostar/js/jquery-ui.min.js"></script>
<script language="javascript" type="text/javascript"
        src="/templates/protostar/js/jclip.js"></script>
<script language="javascript" type="text/javascript"
        src="/templates/protostar/js/cp.js"></script>

我不明白...这是我的 jQuery 代码:

<script type="text/javascript" language="javascript">
(function ($) {
    $(document).ready
    (
        function () {
            $('.mapban').parent().jclip(0, 0, 1060, 750);

            $('#mapplane').draggable({ containment: $('#containermy'),
            scroll: false,
            drag: function() {  
            console.log(ui.offset);
             },


            });

 })
</script>
4

2 回答 2

4

在您的拖动处理程序方法中,您正在使用一个名为ui但未在函数范围内的任何地方声明的变量,这是导致错误的原因。

拖动事件处理程序接收 2 个参数,第一个是事件,第二个是ui包含特定于小部件事件的一些数据的对象,您需要增强事件处理程序方法签名以接受这些参数,如下所示。

jQuery(function ($) {
    $('.mapban').parent().jclip(0, 0, 1060, 750);
    $('#mapplane').draggable({
        containment: $('#containermy'),
        scroll: false,
        drag: function (event, ui) { //here ui is the second parameter
            console.log(ui.offset);
        }
    });
})
于 2013-11-09T17:23:51.933 回答
1

你忘了添加参数drag: function (event, ui) {

事件拖动

(function ($) {
    $(document).ready(function () {
        $('.mapban').parent().jclip(0, 0, 1060, 750);
        $('#mapplane').draggable({
            containment: $('#containermy'),
            scroll: false,
            drag: function (event, ui) {
                console.log(ui.offset);
            },
        });
    });
});
于 2013-11-09T17:24:03.013 回答