1

我真的是 Jquery 的新手,正在尝试弄清楚如何确定单击了哪个链接,然后运行 ​​if else 语句。这是一个视频游戏粉丝网站。

我为单位统计信息设置了一个表格,并将一堆 Div 设置为按钮(显示设置为阻止的链接),当单击一个按钮时,它会使用该单位数据和图像填充表格。我的工作正常。现在在某些情况下,一个单位拥有具有不同统计数据的备用武器。我有一个空白的 tr 标签,里面有一个链接,当单位有备用武器时,它只会在 td 标签中获取文本。

我要做的是在不离开或刷新页面的情况下让该链接替代(切换)武器统计信息。我让它与一个单元一起工作,但它以相同的方式交替表数据(html),每个单元都有该特定链接出现。我需要它知道单击了哪个按钮,然后当 alt 链接出现时,它会切换该单位的正确武器数据。

我真的希望这是有道理的,因为这只是我使用 jquery 的第二天。由于我是新手,请尽可能具体地提供帮助。非常感谢

我的html设置是。

<div id="unit1"><a href="#">Unit 1</a></div>

<div id="Unit2"><a href="#">Unit 2</a></div>

<div id="Unit3"><a href="#">Unit 3</a></div>

<table>

<tr>
<td><a id="altweapon" href="#"></a></td>
<td><span id="weapName"></span></td>
<td><span id="attack"></span></td>
<td><span id="range"></span></td>
</tr>

</table>

我的 jquery 设置好了。

$("#Unit1").click(function(){
   $("#altweapon").html("");
   $("#weapName").html("weapon 1");
   $("#attack").html("10");            

 });
$("#Unit2").click(function(){
   $("#altweapon").html("Alternate");
   $("#weapName").html("weapon 1");
   $("#attack").html("5");            

 });
$("#Unit3").click(function(){
   $("#altweapon").html("Alternate");
   $("#weapName").html("weapon 1");
   $("#attack").html("15");            

 });

$("#altweapon").click(function() {
    $("#altweapon").toggleClass("Wp1").toggleClass("Wp2");

    if ($("#altweapon").hasClass("Wp1"))
  {
        $("#weapon").html("Weapon 1");

  } else
  {
        $("#weapon").html("Weapon2");
  }
 });
4

3 回答 3

2

不确定这是否回答了您的问题,但似乎无论您在做什么都可以从您学习 jquery data objects中受益。有了这个,您可以存储和检索设置。例如 ...

<a class="weapon" data-attack="10" data-range="1">Unit 1</a>
<a class="weapon" data-attack="12" data-range="2">Unit 1</a>
<a class="weapon" data-attack="15" data-range="3">Unit 1</a>

然后 jQuery...

$('a.weapon').click(function({
    $('#weapName').html( $(this).html() );
    $('#attack').html( $(this).data('attack') );
    $('#range').html( $(this).data('range') );
});

您还可以设置$('body').data('foo', 52);将应用于整个文档,而不仅仅是特定元素...

于 2012-07-31T14:20:26.960 回答
0
if(jQuery('#id').data('clicked')) {
    //Do whatever you want 
} else {
    // do whatever you want
}

You can use multiple of these to accomplish which #id or .class was clicked.

An alternative method would be to use var boolean. This enables you to toggle too.

remember in all these examples $=JQuery

var isClicked = false;
$('#id').click(function () {
    isClicked = true;
});

if (isClicked) {
    // The link has been clicked.
} else {
    // The link has not been clicked.
}
于 2012-07-31T14:13:41.730 回答
0

您应该this在事件处理程序中使用对象。该对象指的是在其中执行的任何对象上下文方法。它与我使用的其他语言的概念非常不同,因此您必须注意不要因此而踩到任何地雷。

看看这个小提琴的例子 http://jsfiddle.net/qKB3p/5/

于 2012-07-31T14:13:49.647 回答