2011-08-07 68 views
2

我希望有人能帮忙。我有这样一个环节:用jQuery改变属性

<a id='testOne' onclick="doTest('one'); return false;" title="Test One">One</a> 

我需要的是拥有jQuery的做到以下几点:

  • 去掉标题和禁用链接的作用
  • 加回的标题是“测试一个“,并启用链接的动作

有没有任何jQuery专家可以告诉我如何做到这一点。现在我的jQuery知识只是选择器,几乎没有更多。我希望我能举一个例子。

感谢

+0

jQuery有文档:http://api.jquery.com/值得看看它。 –

回答

1

试试这个

//To remove the title and default action. 
$("#testOne").attr("title", "").click(function(e){ 
    e.preventDefault(); 
}).attr("onclick", null); 

//To reset the title and action 
$("#testOne").attr("title", "Test One").click(function(e){ 
    doTest('one'); 
}); 
+0

我喜欢这个答案。谢谢。 – Melinda

0

简单:

$('#testOne').attr('title', '').attr('title', 'Test One').attr('href', 'someLink');

attr()获取或设置一个属性,你可以命令链在一起。

如果 '启用链接的作用' 你的意思是模拟点击,试试这个:

$('#testOne').trigger('click');

您也可以跳过您onclick语法,做:

$('#testOne').click(function (ev) {doTest('one');});

0

您可以使用.attr()编辑属性,例如:

$('#testOne').attr('title', ''); 
$('#testOne').attr('onclick', ''); 

$('#testOne').attr('title', 'Your old title'); 
$('#testOne').attr('onclick', 'Your old onclick'); 
0

如果你想保留的元素的内嵌代码(即在onclick=...部分),那么你将不得不使用这样的代码:

var actionsMapping = {}; 

function Disable() { 
    var oLink = $("#testOne").get(0); 
    if (oLink.onclick != null) 
     actionsMapping[oLink] = oLink.onclick; 
    oLink.onclick = null; 
} 

function Enable() { 
    var oLink = $("#testOne").get(0); 
    if (actionsMapping[oLink] != null) 
     oLink.onclick = actionsMapping[oLink]; 
} 

的属性集合只能存储字符串常量,当你需要存储实际的事件处理程序。

Live test case

0

如果可能的话,您应该首先使用jQuery来应用您的处理程序。使用某种“全局”状态禁用比重新应用更容易。

<a id='testOne' title="Test One">One</a> 

<script type="text/javascript"> 
    $(function() { 
     var testOneClicked = false; 
     $('#testOne').click(function() { 
      if (testOneClicked) { 
       $(this).attr('title','Test One'); 
      } 
      else { 
       $(this).attr('title',''); 
       doTest('one'); 
      } 
      testOneClicked = !testOneClicked; 
      return false; 
     }); 
    }); 
</script> 

随着实验位,您可以扩展,使用阵列和index方法,考虑到任何数量的提供,他们同样工作环节。您只需跟踪doTest函数的参数以及一组数组中与链接相关位置对应的数组中的标题,并根据链接索引点击它们时提取它们。