Javascript 如何使用href和onclick函数传递参数
当我点击Javascript 如何使用href和onclick函数传递参数,javascript,jquery,Javascript,Jquery,当我点击时,我想传递参数,首先我有这个参数,并且工作正常: <a href="#" rel="like{{num}}"> I like </a>| $("a[rel^='like']").click(function(){ $.ajax({ ... }); 但我得到了这个错误: ReferenceError: cap is not defined 有什么想法吗?解决方案是:
时,我想传递参数,首先我有这个参数,并且工作正常:
<a href="#" rel="like{{num}}"> I like </a>|
$("a[rel^='like']").click(function(){
$.ajax({
...
});
但我得到了这个错误:
ReferenceError: cap is not defined
有什么想法吗?解决方案是:
你可以试试这个
<a class="ilike" href="javascript:;" data-p1="abc" data-p2="123"> I like </a>
<script>
function cap(para1, para2){
alert('here');
}
$(function(){
$('.ilike').click(function(){
var $this = $(this);
var p1 = $this.data('p1');
var p2 = $this.data('p2');
cap(p1, p2);
});
});
</script>
功能盖(para1、para2){
警报(“此处”);
}
$(函数(){
$('.ilike')。单击(函数(){
var$this=$(this);
变量p1=$this.data('p1');
var p2=$this.data('p2');
cap(p1,p2);
});
});
如果您想通过onclick执行此操作,要么是1)您在错误的范围内声明了函数,要么是2)函数声明之前发生了另一个JS错误,导致无法执行
要解决范围问题,可以尝试执行window.cap=function(para1,para2){…
若要查看是否有任何错误,请尝试firebug或任何浏览器开发人员工具,并在console下检查错误。此
cap
函数是否恰好位于$(document).ready()
回调中?答案有点误导,因为似乎是“数据”属性与jQuery相关,而它是为HTML5文档引入的。因此,如果他使用HTML5,此解决方案将提供有效的标记。当然,它也适用于非HTML5标记。@JeanValjean+1您是对的,您可以使用dataset属性。我将进行编辑以删除对jQuery的提及。感谢您指出这一点。
ReferenceError: cap is not defined
<a href="#" rel="like{{num}}" data-para1="Oh" data-para2="{{somepara}}"> I like </a>
<script>
function cap(para1, para2){
alert('here');
}
$("a[rel^='like']").click(function(){
var para1 = this.dataset['para1'];
var para2 = this.dataset['para2'];
cap(para1, para2);
});
</script>
<a href="#" rel="like{{num}}" data-params="{'para1':'Oh','para2':'{{somepara}}'}"> I like </a>
$("a[rel^='like']").click(function(){
var params = this.dataset['params'];
var para1 = params.para1;
var para2 = params.para2;
var para1 = this.data('para1');
<a class="ilike" href="javascript:;" data-p1="abc" data-p2="123"> I like </a>
<script>
function cap(para1, para2){
alert('here');
}
$(function(){
$('.ilike').click(function(){
var $this = $(this);
var p1 = $this.data('p1');
var p2 = $this.data('p2');
cap(p1, p2);
});
});
</script>