函数不能用作另一个函数参数

function doesn't work as another function parameter

本文关键字:函数 参数 另一个 不能      更新时间:2023-09-26

失败示例

原始示例

谁能告诉我如何将draggable函数作为 AJAX 函数的参数传递给 clickit?我想将draggable作为参数传递以将其附加到动态添加的元素。我无法让它定义可拖动函数并将其传递给clickit.

function clickit(fun){
  $.ajax({
        'url' : "url",
        'dataType' : 'json',
        'success' : function(data){
         var item_html ="";
            $.each(data.query.results.json,function(i,k){
                item_html += '<div class="dialog"><h3>'+k+'</h3></div>'
            });           
            $('.area').html(item_html);
            fun;         
          }
   });   
}
$('button').click(function(){
    var funpara = $('.dialog').draggable();
    clickit(funpara)
});

这是有效的:

function clickit(){
  $.ajax({
        'url' : "url",
        'dataType' : 'json',
        'success' : function(data){
         var item_html ="";
            $.each(data.query.results.json,function(i,k){
                item_html += '<div class="dialog"><h3>'+k+'</h3></div>'
            });           
            $('.area').html(item_html);
            $('.dialog').draggable();         
          }
   });   
}
$('button').click(function(){
    clickit()
});

看起来参数fun无法传递给成功函数。

看起来你想调用fun,但目前你只是引用它而没有调用()

function (data) {
    var item_html = "";
    $.each(data.query.results.json, function (i, k) {
        item_html += '<div class="dialog"><h3>' + k + '</h3></div>';
    });           
    $('.area').html(item_html);
    fun();         
}

在你的上下文中,看起来你想调用$('.dialog').draggable(),所以fun应该看起来更像这样

function fun(o) {
    return $('.dialog').draggable(o);
}