是的,我已经被告知有几次使用onclick
$('#linkId').click(function()
而不是
<a href='javascript:showComments($displayWall[id]);'>
但是,我如何在函数中存储一个变量,就像我可以用上面的那个?
我的意思是如果链接是这样的:<a id="linkId">test</a>
我可以在哪里存储变量?
答案 0 :(得分:5)
<强>更新强>
看起来更像$displayWall
是一个全局JS变量(否则<a href='javascript:showComments($displayWall[id]);'>
将无效)。那么这实际上也应该有效:
$('#linkId').click(function() {
showComments($displayWall[id]);
});
我现在意识到,以下假设是遥不可及的,但不过:
假设$displayWall
是服务器端变量,意味着页面得到预处理。
例如,您可以将链接的ref
属性设置为变量值:
<a id="linkId" ref="$displayWall[id]">test</a>
并在点击处理程序中访问它:
$('#linkId').click(function() {
showCmments($(this).attr('ref'));
//...
});
如果您只将处理程序附加到一个元素,您还可以在单击处理程序中设置变量:
$('#linkId').click(function() {
var value = '$displayWall[id]';
//...
});
答案 1 :(得分:0)
你可以<a id="linkId" name="SOME_DATA">test</a>
。在单击处理程序中,您可以像这样访问数据:
$('#linkId').click(function(){
alert($(this).attr('name'));
});
答案 2 :(得分:0)
您可以使用其他属性来保存动态值(例如id,name,rel,class等)。其中一个例子可能会变成这样 - &gt; PHP / HTML:
echo '<a class="showComments" id="c',$displayWall['id'],'" href="#">Show comments</a>';
jQuery的:
$(function(){
$("a.showComments").click(function(){
var id = $(this).attr("id").substr(1);
// ...
return false;
});
});
如果您的变量对于所有元素都相同,则可以将其定义为javascript变量。
var myVar = "<?=$myVar;?>";