我正在使用JQuery Simple模式插件,我希望在点击链接到我的Jquery函数时传递一个Freemarker变量/对象。
作为测试,我创建了一个警告框,以查看该值是否正在传递,但似乎无效。
$(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>
警报框只是一个空白对象。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:3)
首先,你看起来好像混淆了html onclick属性和jquery .click方法。
<a onclick="myName('${item.uid}')" id="hey">Read the blog</a>
这将调用名为“myName”的javascript函数,并将其传递给字符串$ {item.uid}。请注意,这是字符串,因为您将其包装在单引号中。如果您发出提醒,您的提醒将直接说“$ {item.uid}”。
然后你有一个点击的jquery绑定事件:
$('#hey').click({....
好的,你需要选一个。使用onclick调用javascript函数或使用bind click事件。这两种方法都可以工作(我更喜欢自己的javascript onclick功能,但这只是意见)。
如果要使用jQuery绑定,请调试器;在它中划线,以便您可以轻松地通过它观察。我通常使用e作为我的事件变量,e.target获取事件的目标。它看起来像这样:
$('#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>
然后,在你的函数javascript中看起来像:
function myName(ptr)
{
$(ptr).....
// do some stuff
}
答案 1 :(得分:1)
尝试使用:
function myName(uid){
alert(uid);
}
您不需要将其包装在jquery事件处理程序中,因为您已经将其称为来自Freemarker模板的onclick事件。
或者,您可以这样做:
<a data-uid="${item.uid}" id="hey">...</a>
让你的javascript像这样:
$('#hey').click(function(){
alert($(this).data('uid'));
}