从嵌套回调中返回false / stop传播

时间:2015-03-31 04:39:51

标签: javascript callback jquery-callback

我之前已经看过这个问题,但是在我自己的工作中没有运气实施解决方案。页面继续跳到顶部。

首先我有一个听众:

$('.edit-description').click(function(e) {
   e.stopPropagation();
   contentContainer = $('#description');
   openEditor(contentContainer);
   return false;
});

然后我的openEditor函数包含回调:

function openEditor(contentContainer){

    var contentType=contentContainer.data('value');
    getRecentEdits(markid, entityType, contentType, function(data){

        if (editArea){
            hiddenContentArea.show();
            editArea.hide();
        }
        hiddenContentArea=contentContainer;
        contentContainer.hide();
        editArea =  $('<div class="edit-container" style="padding-bottom: 10px;">' +
                        '       <textarea class="form-control js-auto-size" style="margin-bottom:5px;">'+ data[0].content+
                        '       </textarea>' +
                        '       <a class="right leave-editor"><i class="fa fa-times-circle"></i>Leave Editor</a>'+
                        '       <button type="button" class="btn btn-sm btn-custom-green submit-edit pull-right right " style="color:#fff;padding-top:5px; background-color: #3D8A11; border: 1px solid #f2f2f2;"><i class="fa fa-check-circle"></i>Submit</button>'+
                        '</div>');
        for(i = 0; i < data.length; i++){
           /** var fileLink = '<a href="#">'+data[i].username+'</a>';
            editArea.prepend(fileLink);**/
            console.log(data[i]);
        }

        var parent=contentContainer.parents("p");
        parent.after(editArea);
        $('textarea.js-auto-size').textareaAutoSize();

        if (contentType==1){
            $('.edit-container').prepend('<div style="color:red;">Note: &nbsp;The description area should contain only facts. Opinions and reviews can be posted on the board below.</div>');
        }

        return false;
        });
    return false;
}

并从内部调用:

function getRecentEdits(id, entityType, contentType, callback){
$.ajax({
    type: "POST",
    url: "get_recent_edits.php",
    data: {id: id, entity_type:entityType, content_type:contentType},
    dataType: "json",
    success: function (data) {
        callback(data);
        return false;
    },
    error: function (data) {
        console.log(data);
        alert("At this time, you could not be added to the list of followers of this location. There was likely a technical difficulty that will fix itself if you try again a bit later. Thanks!");
        alert(data['message'], data['success']);
    }
});
return false;
}

正如你所看到的,我已经在可能的地方放置了一个错误的回报。

对于过多的代码抱歉。没有找到任何解决方案来发布它。

真诚地感谢您的帮助。非常感谢。

0 个答案:

没有答案