如何运行多个函数然后回调

时间:2011-06-12 19:37:51

标签: php javascript jquery

我再一次'涉猎'javascript和jQuery的黑暗艺术,而没有太多关于我实际在做什么的线索。我所知道的是,我设法让我的代码通过填充其他代码并稍微修改它来运行,经过大量的诅咒,它以某种方式起作用。

下面是我的一段代码,它正确构建并显示一个动态选择框,其中包含从mysql查询返回的值。当用户从列表中选择其中一个项目时,代码会成功运行一个显示与该项目关联的地图的功能。

我实际上需要它做的是运行代码来显示查询首先返回的默认/顶级项目的地图,然后每当选择一个新项目时,它应运行该功能以显示新选择的地图

我希望这个解释已经足够清楚,但如果没有,请随时惩罚我。

非常感谢,

罗布。

 $(document).ready(function() {
$('#selecthere').load('/temp/php_script.php?r='+ random, function () 
 { //callback
$('select', this).change(function () { //catch onchange event of select
//call your function here, pass the selected value
initialize($(this).val());
});
});
});

2 个答案:

答案 0 :(得分:2)

(根据以下评论编辑。)

如果我理解,initialize(val)是绘制与val相关联的地图的函数,并且您希望在页面加载val时运行它,而不是选择框中的任何内容默认情况下。为此,您只需在ready函数中添加函数调用:

$(document).ready(function(){
    var random = Math.random();
    // load contents of php script into #selecthere element
    $('#selecthere').load('/temp/php_script.php?r='+ random, function (){ 
       // the contents of the php script are now loaded
       // go ahead and call initialize() on the value that is selected by default
       initialize($('select[name=title]').val());
       // attach a function to fire when select element is changed
       $('select[name=title]').change(function () { 
           // here 'this' refers to the select element
           // call initialize() with the value of select element
           initialize($(this).val());
       });
    });
});
希望我理解。

答案 1 :(得分:1)

查看JQuery Events API。这样,您可以在发生不同的用户交互时运行函数。小例子:

$('#foo').bind('click', function() {
  alert('User clicked on "foo."');
});

这将在单击id为#foo的项目时运行。