我有这个链接:
<a href="#" onClick="addSide('1');return false">Link</a>
我想要的是,当我点击一个按钮(例如)时,该链接中addSide的值会增长。比如先点击我要传递给addSide功能的按钮1,再点击一下 addSide('2'),等等...
那么,是否可以通过编辑这个来替换jS的addSide函数的值,并替换为像addSide('another_value')
这样的东西?
EDIT 我看到我的问题不是那么清楚。所以我举个例子:)
这是我要编辑的代码:
<div class="trackon" id="trackline">
<span class="trackbotton1">
<a class="lblueb" href="#" onClick="addSide('');return false">Add Side</a>
</span>
</div>
我写了这个:
$('#trackline').find('.trackbotton1').children().attr('onclick', 'alert("example");return false');
但功能不会改变......
答案 0 :(得分:4)
我会像这样使用事件绑定:
<a href="javascript: void(0);" class="side_adder" rel="1">Link</a>
然后,在你的JS中:
$('.side_adder').click(function(evt)
{
addSide($(this).attr('rel'));
});
要更改传递的值,只需使用rel
更改$(selector).attr({'rel': <whatever>});
。
答案 1 :(得分:1)
我建议您去unobtrusive javascript。
<强> HTML 强>
<a href="#" class="canAddSide">Link</a>
<强> JS 强>
var curSide=1;
$('.canAddSide').click(function(event){
addSide(curSide);
curSide++;// increment or change the current side
event.preventDefault();// return false;
});
答案 2 :(得分:0)
修改这基于Jimmy Sawczuk's approach,并且有效。
HTML
<a href="#" id="link" onclick="addSide();return false" rel="1">Link</a>
<button id="button">Button</button>
<div id="slide">1</div>
JS
$('#button').click(function() {
var current_num = parseInt($('#link').attr('rel'));
var new_num = current_num + 1;
$('#link').attr('rel', new_num);
});
function addSide() {
var n = parseInt($('#link').attr('rel'));
$('#slide').text('slide number ' + n );
}
旧回答 - 这不起作用。
<a href="#" id="link" onclick="addSide('1');return false">Link</a>
<button id="button">Button</button>
$('#button').click(function() {
var current_func = $('#link').attr('onclick');
var current_func_parts = current_func.split("'");
var current_num = parseInt(current_func_parts[1]);
var new_num = current_num + 1;
var new_func = "addSide('" + new_num + "');return false";
$('#link').attr('onclick', new_func);
});