1

我有这个函数,但它给了我函数语句需要名称 onStop 函数

<script type="text/javascript">
 jQuery( function($) {
    $('#Hnav, #Nnav').NestedSortable(
            {
                accept: 'sort',
                noNestingClass: "no-children",
                helperclass: 'helper',
                autoScroll: true,
                onChange: function(serialized) {
                onStop : function(){
                    $('#output').html($(this).id);
                },
                    nestingPxSpace : '0'
            }
    );
});
</script>
4

3 回答 3

4

在此上下文中,this指的是onStop事件发生的 DOM 元素。DOM 元素不是 jQuery 对象。

jQuery$(this)对象没有id属性,而 DOM 元素有。因此,请使用:

$('#output').html(this.id);

或者:

$('#output').html($(this).attr("id"));

并且不要忘记关闭onChange处理函数中的括号。

于 2012-06-28T10:04:18.817 回答
1

缺少一个括号,并且您使用错误的语法获取 id 试试这个,

$('#output').html($(this).id);

应该

$('#output').html(this.id); 

或者

$('#output').html($(this).attr(id));

  jQuery(function($) {
    $('#Hnav, #Nnav').NestedSortable({
        accept: 'sort',
        noNestingClass: "no-children",
        helperclass: 'helper',
        autoScroll: true,
        onChange: function(serialized) {
            alert("changed");// Changed to fix
        },               
        onStop: function() {
             $('#output').html(this.id);
        },
        nestingPxSpace: '0'       
    });
});​
于 2012-06-28T10:03:50.133 回答
1

代码中有两个问题,

  1. 内部函数未正确关闭。
  2. 使用了 jQuery 选择器不支持的元素的 id 属性。

修改后的代码是,

jQuery( function($) {
    $('#Hnav, #Nnav').NestedSortable(
            {
                accept: 'sort',
                noNestingClass: "no-children",
                helperclass: 'helper',
                autoScroll: true,
                onChange: function(serialized) {
                    //A empty function
                },
                onStop : function(){
                    $('#output').html($(this).attr("id"));
                },
                nestingPxSpace : '0'
            }
    );
});
于 2012-06-28T10:20:50.307 回答