【问题标题】:Set name for a $document ready function为 $document 就绪函数设置名称
【发布时间】:2013-11-15 13:20:23
【问题描述】:

您好,我搜索并找到了一些信息,但我不能为此函数设置名称以在其他函数中再次调用它以“重新加载”数据。

我是个菜鸟,所以我尝试在函数 myfunction() {} 中从 var 形式包装到 en,但没有奏效。有什么建议吗?

$(document).ready(function (){
  var form = $('#formcomments');
  var submit = $('#comments');

    // send ajax request
    $.ajax({
      url: '<?PHP echo $this->make_base_url("user/comments_all/".$resdata['id']."/");?>',
      type: 'POST',
      cache: false,
      data: form.serialize(), //form serizlize data
      beforeSend: function(){
        // change submit button value text and disabled it
        submit.val('Enviando...').attr('disabled', 'disabled');
      },
      success: function(data){
        // Append with fadeIn see http://stackoverflow.com/a/978731
        var item = $(data).hide().fadeIn(800);
        $('.module').append(item);
var objDiv = document.getElementById("modulecomm");
objDiv.scrollTop = objDiv.scrollHeight;
        // reset form and button
        form.trigger('reset');
        submit.val('Submit Comment').removeAttr('disabled');

      },
      error: function(e){
        alert(e);
      }
    });
});

【问题讨论】:

    标签: javascript


    【解决方案1】:

    将函数文字更改为函数声明非常简单。只需将其移出,为其命名,然后使用该变量即可。

    function ready() {
        var form = $('#formcomments');
        var submit = $('#comments');
    
        // send Ajax request
        $.ajax({
            url: <?= json_encode($this->make_base_url("user/comments_all/{$resdata['id']}/")) ?>,
            type: 'POST',
            data: form.serialize(), //form serizlize data
            beforeSend: function() {
                // change submit button value text and disabled it
                submit.val('Enviando...').prop('disabled', true);
            },
            success: function(data) {
                // Append with fadeIn see http://stackoverflow.com/a/978731
                var item = $(data).hide().fadeIn(800);
                $('.module').append(item);
                var objDiv = document.getElementById("modulecomm");
                objDiv.scrollTop = objDiv.scrollHeight;
                // reset form and button
                form.trigger('reset');
                submit.val('Submit Comment').prop('disabled', false);
            },
            error: function(e) {
                alert(e);
            }
        });
    }
    
    $(document).ready(ready);
    

    我还更改了您的 PHP 以使用 json_encode,它会为您处理任何转义,在极少数情况下这是必要的。 (还有一些其他的小改动。)

    【讨论】:

    • 函数 read() 产生一个 object[Object] 错误,你知道为什么吗?
    【解决方案2】:

    我会这样写

    (function($){
      var init = function() {
        // ...
      };
    
      $(init);
    })(jQuery);
    

    这个匿名闭包将init 函数排除在全局命名空间之外。

    注意:$(fn)$(document).ready(fn)的快捷方式;


    来自 jQuery .ready 文档

    以下三种语法都是等价的:

    • $( document ).ready( handler )
    • $().ready( handler )(不推荐)
    • $( handler )

    【讨论】:

    • 谢谢我也试试这个,
    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 2019-11-19
    • 1970-01-01
    • 2016-11-22
    相关资源
    最近更新 更多