如何解决jQuery-更改/在链接上添加事件
| 我有这个链接:<a href=\"#\" onClick=\"addSide(\'1\');return false\">Link</a>
我想要,当我单击一个按钮(例如)时,该链接中addSide的值增加。如第一次单击要传递给addSide函数的按钮1,第二次单击
addSide(\'2 \'),依此类推...
因此,是否有可能通过编辑此代码并替换为addSide(\'another_value\')
之类的方法来更改addSide函数(使用jQuery的函数)的值?
编辑
我看不清楚我的问题。所以我举一个例子:)
这是我要编辑的代码:
<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\');
但是功能没有改变...
解决方法
编辑这是基于Jimmy Sawczuk的方法,并且有效。
的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);
});
,我将使用事件绑定,如下所示:
<a href=\"javascript: void(0);\" class=\"side_adder\" rel=\"1\">Link</a>
然后,在您的JS中:
$(\'.side_adder\').click(function(evt)
{
addSide($(this).attr(\'rel\'));
});
要更改传递的值,只需使用$(selector).attr({\'rel\': <whatever>});
更改rel
。
,我建议您使用不引人注目的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;
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。