Javascript 如何将对象值名称传递给Jquery中的函数
我正在使用JQuery简单模式插件,我想在点击JQuery函数的链接时传递一个Freemarker变量/对象 作为一个测试,我创建了一个警报框,以查看该值是否被传递,并且它似乎不起作用Javascript 如何将对象值名称传递给Jquery中的函数,javascript,jquery,freemarker,simplemodal,Javascript,Jquery,Freemarker,Simplemodal,我正在使用JQuery简单模式插件,我想在点击JQuery函数的链接时传递一个Freemarker变量/对象 作为一个测试,我创建了一个警报框,以查看该值是否被传递,并且它似乎不起作用 $(function() { // Load dialog on page load //$('#basic-modal-content').modal(); // Load dialog on click $('#hey').click(function myName(uid
$(function() {
// Load dialog on page load
//$('#basic-modal-content').modal();
// Load dialog on click
$('#hey').click(function myName(uid) {
var x = uid;
alert(uid);
return false;
});
});
HTML
<div id="disclaimer${item.uid}">
Modal data
</div>
<a onclick="myName('${item.uid}')" id="hey">Read the blog</a>
模态数据
阅读博客
警报框只是作为一个空白对象出现。任何帮助都将不胜感激。谢谢 尝试使用以下方法:
function myName(uid){
alert(uid);
}
您不需要将其包装到jquery事件处理程序中,因为您已经从Freemarker模板中将其作为onclick事件调用
或者,您可以这样做:
<a data-uid="${item.uid}" id="hey">...</a>
$('#hey').click(function(){
alert($(this).data('uid'));
}
$('#hey').click(function(e){
debugger;
alert($(e.target).attr('data-uid'));
});
尝试使用以下方法:
function myName(uid){
alert(uid);
}
您不需要将其包装到jquery事件处理程序中,因为您已经从Freemarker模板中将其作为onclick事件调用
或者,您可以这样做:
<a data-uid="${item.uid}" id="hey">...</a>
$('#hey').click(function(){
alert($(this).data('uid'));
}
$('#hey').click(function(e){
debugger;
alert($(e.target).attr('data-uid'));
});
首先,您似乎混淆了HTMLonClick属性和jquery.click方法
<a onclick="myName('${item.uid}')" id="hey">Read the blog</a>
好的,你需要选一个。可以使用onclick调用javascript函数,也可以使用bind click事件。这两种方法都可以工作(我自己更喜欢javascript onclick函数,但这只是我的看法)
如果要使用jQuery绑定,请放置一个调试器;在它的线,以便您可以通过它很容易地一步一步观看。我通常使用e作为事件变量,e.target获取事件的目标。它看起来像这样:
<a data-uid="${item.uid}" id="hey">...</a>
$('#hey').click(function(){
alert($(this).data('uid'));
}
$('#hey').click(function(e){
debugger;
alert($(e.target).attr('data-uid'));
});
---编辑---
在下面添加我的注释,以便更容易阅读
在onclick函数中,我喜欢做的一件事是传递this指针。如果有多个相同类型的节点正在调用相同的函数,则这一点尤其有用
<a onclick="myName(this)" id="hey2">Read the blog</a>
<a onclick="myName(this)" id="hey3">Read the blog</a>
首先,您似乎混淆了HTMLonClick属性和jquery.click方法
<a onclick="myName('${item.uid}')" id="hey">Read the blog</a>
好的,你需要选一个。可以使用onclick调用javascript函数,也可以使用bind click事件。这两种方法都可以工作(我自己更喜欢javascript onclick函数,但这只是我的看法)
如果要使用jQuery绑定,请放置一个调试器;在它的线,以便您可以通过它很容易地一步一步观看。我通常使用e作为事件变量,e.target获取事件的目标。它看起来像这样:
<a data-uid="${item.uid}" id="hey">...</a>
$('#hey').click(function(){
alert($(this).data('uid'));
}
$('#hey').click(function(e){
debugger;
alert($(e.target).attr('data-uid'));
});
---编辑---
在下面添加我的注释,以便更容易阅读
在onclick函数中,我喜欢做的一件事是传递this指针。如果有多个相同类型的节点正在调用相同的函数,则这一点尤其有用
<a onclick="myName(this)" id="hey2">Read the blog</a>
<a onclick="myName(this)" id="hey3">Read the blog</a>
hey在您发布的html中的什么位置?
event
对象是作为参数传递给事件处理程序(如单击函数)的对象。对单击事件使用未命名的函数,如。单击(函数(uid){…})
,而不是。单击(函数myName(uid){…})
。您将函数的参数命名为uid
,但实际上您会在此处找到对单击的DOM元素的引用。hey在您发布的html中的何处?event
对象是作为参数传递给事件处理程序(如click函数)的对象。对单击事件使用未命名的函数,如。单击(函数(uid){…})
,而不是。单击(函数myName(uid){…})
。您将函数的参数命名为uid
,但实际上您会在这里找到对单击的DOM元素的引用。这绝对有意义。谢谢当然有道理。谢谢在onclick函数中,我喜欢做的一件事是传递this指针。如果有多个相同类型的节点正在调用相同的函数,则这一点尤其有用阅读博客
然后,在javascript中,您的函数看起来像:'function myName(ptr){$(ptr)…//do some stuff}'我喜欢在onclick函数中做的一件事是传递this指针。如果有多个相同类型的节点正在调用相同的函数,则这一点尤其有用阅读博客
然后,在javascript中,您的函数看起来像:'function myName(ptr){$(ptr)…..//do some stuff}'