jQuery:onclick而不是href = javascript ::

时间:2010-09-17 16:59:42

标签: jquery

是的,我已经被告知有几次使用onclick

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

而不是

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

但是,我如何在函数中存储一个变量,就像我可以用上面的那个?

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

3 个答案:

答案 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;?>";