2009-10-18 80 views
0

当我点击一个链接时,我不会发送一个变量到一个JavaScript函数,但由于某种原因,我无法找到任何地方如何在互联网上做到这一点。发送变量到javascript(jquery)函数

这里是我的页面顶部的功能:

<script> 
$(document).ready(function(){ 
$('[name=updateInterface]').click(function() { 
$("#interfaceScreen").load("modules/interface/interfaceScreen.php?h= &v= "); 
}); 
}); 
</script> 

正如你可以看到我需要的变量被放置在后“H =”和“v =”后面的部分。

下面是激活我的网页功能的链接:从那里

<a href="#" name="updateInterface"><img src="images/map/invisible.png" border="0" /></a> 

回答

3

变量?这很容易:

var h = 20; 
var v = 40; 
$(function() { 
    $('[name=updateInterface]').click(function() { 
    $("#interfaceScreen").load("modules/interface/interfaceScreen.php?h=" + 
     encodeURIComponent(h) + "&v=" + enocdeURICompoennt(v)); 
    }); 
}); 

只要确保你用encodeURIComponent()逃脱它们。

当然,你可以从任何地方一样让他们:

<input type="text" id="txth"> 
<input type="text" id="txth"> 

然后:

var h = $("#txth").val(); 
var v = $("#txtv").val(); 

编辑:好了,从你的意见,你要发送从信息我收集服务器返回到客户端,以便客户端可以将其发回。首先是做你的点击处理程序在非jQuery的一种方式:

<a href="javascript:handle_click(17,43);">Click me</a> 

有:

function handle_click(h, v) { 
    $("#interfaceScreen").load("modules/interface/interfaceScreen.php?h=" + 
    encodeURIComponent(h) + "&v=" + enocdeURICompoennt(v)); 
} 

这可能是最简单的解决方案。如果你想坚持使用jQuery点击处理程序,你总是可以将这些信息嵌入到属性或隐藏元素中。例如:

<a href="#" class="special"><div class="special-h">12</div><div class="special-v">34</div>Click me</a> 

与CSS:

a.special div { display: none; } 

和:

$(function() { 
    $("a.special").click(function() { 
    var h = $(this).children("special-h").text(); 
    var v = $(this).children("special-v").text(); 
    $("#interfaceScreen").load("modules/interface/interfaceScreen.php?h=" + 
     encodeURIComponent(h) + "&v=" + enocdeURICompoennt(v)); 
    }); 
}); 

有关于这一主题的许多变化。

最后,我会指出,我会建议你不要做属性查找选择器,你可以避免它。为锚定一个类和/或ID并使用其中的一个来分配事件处理程序。也可以在“.special”之上使用类似“a.special”的选择器(出于性能原因)。

0

你的意思是将它们追加到URL字符串中吗?

<script> 
$(document).ready(function(){ 
$('[name=updateInterface]').click(function() { 
$("#interfaceScreen").load("modules/interface/interfaceScreen.php?h=" + h + "&v=" + v); 
}); 
}); 
</script> 

这里假设你有你的脚本中的其他地方定义的变量hv

+0

我不会发送链接的变量,原因是我会有多个链接,但具有不同的变量。 因此,点击不同的链接将向函数发送2个不同的变量。 – Stanni 2009-10-18 14:36:11