这让我卡住了一段时间。我对 onclick
JavaScript 调用的 Web 搜索有时带有大写 C,如 onClick
和其他时间 onclick
。我的代码是 JQuery Mobile 应用程序的一部分,但 onclick
是 JS。所以,它看起来像这样:
domEntry = '<li><a href="#poet-details"';
domEntry += ' onclick="getPoetDetails('+ poet_name + ')">';
domEntry += poet_name;
domEntry += '</a></li>';
我要把它添加到一个 div 中。 'poet_name
确实在第 3 行正确显示。如何在 getPoetDetails
中访问它?我说得对吗?
另外,请参阅:http://jsfiddle.net/brucewhealton/XF5AJ/
函数 getPoetDetails
可以在给定的链接中看到。我是否通过事件对象变量访问它?应用程序将查询字符串发送到另一个位置 dbpedia.org/sparql,然后取回 JSON。我需要第二个查询的 poet_selected 或 poet_name 来获取有关诗人的详细信息,因为我的应用程序目前只列出诗人,不是很有趣。我想弄清楚这一点,以便我可以通过让用户从 DBpedia.org 上的“Poets_by_nationality”类别中选择国籍来启动我的应用程序。我的问题是捕获用户的选择,他们在 jQuery Mobile 应用程序中单击或点击的内容并将其发送到另一个函数。
最佳答案
所以您在为诗人姓名的 anchor 标签设置 onClick 时遇到了问题?我认为最好的方法是不使用任何内联 javascript。有了这个,当你准备好在窗口中启动你的 javascript 时,或者你选择这样做时,你应该添加这一行
$('#result').delegate('a', 'click', getPoetDetails);
这会告诉 jQuery 查看 #result 的内部,并且每当有新的 anchor 标记时就将此点击事件应用于它。点击事件应该调用 getPoetDetails。
现在,在您创建和插入 anchor 标记的地方,您应该摆脱 javascript 的东西,取而代之的是这个
domEntry = '<li><a href="#poet-details"';
domEntry += 'data-name="'+ poet_name + '">';
domEntry += poet_name;
domEntry += '</a></li>';
这是给 anchor 一个数据值 name 和诗人名字的值。现在您可以使用 jQuery 在 getPoetDetails 函数中获取此数据。它的开始现在可以是这样的,其余的保持不变。
var getPoetDetails = function(){
var poet_name_selected = $(this).data('name');
// show loader
我很确定您在调用以获取 json 数据时做错了什么,或者您解析错误,但现在至少 getPoetDetails 正确获取了名称。为了使其在 jsfiddle 中显示为有效,您需要将 onLoad 下拉菜单更改为 noWrap body,因为您已经在 js 中准备好文档。
希望对您有所帮助。
关于javascript - 如何在 JavaScript onclick 调用中发送数据,然后在点击处理函数中访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700865/