jQuery:使用onclick代替href=javascript::

3

我已经被告知过几次使用onclick

$('#linkId').click(function() 

替代

<a href='javascript:showComments($displayWall[id]);'>

那么如何在函数中存储变量,就像上面的例子一样?

我的意思是,如果链接是这样的:<a id="linkId">test</a>,我该在哪里存储变量?


2
$displayWall[id] 是从哪里来的? - Felix Kling
3个回答

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]';
    //...
});

0

您可以这样做:<a id="linkId" name="SOME_DATA">test</a>。在点击事件处理程序中,您可以像这样访问数据:

$('#linkId').click(function(){
    alert($(this).attr('name'));
});

0

您可以使用其他属性来保存动态值(例如id、name、rel、class等)。其中一个示例可能会变成这样 -> 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;?>";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接