我再一次'涉猎'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());
});
});
});
答案 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的项目时运行。