2

我确定我想太多了……

文件 A 有一个空容器 div,单击按钮,将数据加载到该 div...

文件 A 有一个按钮,我想从上面的 jquery 返回绑定一个函数。

AJAX 文件

echo json_encode(array('callback' => 'javascriptFunction'));

“javascriptFunction”是一个可以调用的有效函数。我如何或可以绑定该功能。

JAVASCRIPT

$.ajax({
    type: 'POST',
    dataType: 'json',
    url: "../ajax.php",
    data: '&m=loadExternalData&f='+ module,
    success: function(resultData) {
        $('#externalFieldsetTitle').html(resultData.title);
        $('#externalSaveButton').bind('click', function() {
            resultData.callback;
        });
    }
}); 

我传回的不仅仅是“回调”,但对于这个例子,我认为不需要它。

基本上,我将外部模块加载到一个 div 中,并希望允许它们指定它们的保存功能并将其传入,以便核心保存按钮将在多个外部加载的文件上工作。我相信这有道理吗?

4

3 回答 3

2

尝试这样的事情:

$('#externalSaveButton').bind('click', function() {
            window[resultData.callback]();
        });

或直接:

$('#externalSaveButton').bind('click', window[resultData.callback]);

(在这种情况下,它必须在全局范围内)

于 2012-11-05T15:11:24.990 回答
0
$(document).ready(function() {
$('#externalSaveButton').live('click', function(resultData) {
            resultData.callback;
        });
});   
于 2012-11-05T15:11:07.190 回答
0

ajax 请求可能会返回一个字符串作为函数。您可以做的是尝试将其作为Function构造函数传递:

var callback = new Function(resultData.callback);
$('#externalSaveButton').bind('click', callback);

但这一切都取决于resultData.callback格式化的方式。

于 2012-11-05T15:13:38.897 回答