0

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

我是个菜鸟,所以我尝试在函数 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);
      }
    });
});
4

2 回答 2

4

将函数文字更改为函数声明非常简单。把它移出来,给它一个名字,然后使用那个变量。

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 更改为 use json_encode,它会为您处理任何转义,在极少数情况下这是必要的。(还有一些其他的小改动。)

于 2013-11-15T05:18:13.383 回答
2

我会这样写

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

  $(init);
})(jQuery);

这个匿名闭包使init函数远离全局命名空间。

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


来自 jQuery .ready文档

以下所有三种语法都是等效的:

  • $( document ).ready( handler )
  • $().ready( handler )(不建议这样做)
  • $( handler )
于 2013-11-15T05:20:23.660 回答