我希望有人可以提供帮助。我有这样一个链接:
<a id='testOne' onclick="doTest('one'); return false;" title="Test One">One</a>
我需要的是让jQuery执行以下操作:
是否有任何jQuery专家可以告诉我如何做到这一点。现在我的jQuery知识只是选择器而且几乎没有。我希望我能得到一个例子。
由于
答案 0 :(得分: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');
});
答案 1 :(得分:0)
易:
$('#testOne').attr('title', '').attr('title', 'Test One').attr('href', 'someLink');
attr()
获取或设置属性,您可以将命令链接在一起。
如果通过'启用链接操作'表示模拟点击,请尝试以下操作:
$('#testOne').trigger('click');
您也可以跳过onclick
语法并执行:
$('#testOne').click(function (ev) {doTest('one');});
答案 2 :(得分:0)
您可以使用.attr()
编辑属性,例如:
$('#testOne').attr('title', '');
$('#testOne').attr('onclick', '');
$('#testOne').attr('title', 'Your old title');
$('#testOne').attr('onclick', 'Your old onclick');
答案 3 :(得分: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];
}
属性集合只能存储字符串文字,而您需要存储实际的事件处理程序。
答案 4 :(得分: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
函数的参数和一组数组中的标题,这些数组对应于链接集中链接的相对位置,并根据当时链接的索引提取这些标题它被点击了。