javascript - 如何在 JavaScript onclick 调用中发送数据,然后在点击处理函数中访问它?

标签 javascript jquery jquery-events

这让我卡住了一段时间。我对 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/

相关文章:

javascript - 如何让所有页面元素不对点击使用react

javascript - 如何过滤粘贴到 TextArea 中的值

javascript - 建立一个 Electron 项目需要多长时间?

javascript - Web 上的用户注册表单有哪些优秀示例?

jquery - 如何在 jQuery 图像循环器中隐藏非事件图像

javascript - 如何将属性添加到文本区域内的链接?

javascript - 当 Objective-C dom 更新准备好从 webview 启动时收到通知

javascript - onclick 无法与 bootstrap 一起正常工作

javascript - 使用变量作为参数的setAttribute onClick?

javascript - FileSystemHandle.requestPermission DOMException : User activation is required to request permissions