如何在单击链接时启动函数,然后从该链接传递类
How to fire up a function when clicking on a link and then pass a class from that link
我有这个HTML:
<li class="sshjd839djjd blahclass"><a onclick="doSomething()">Blah Blah</a></li>
因此,当我点击我的链接时,doSomething()
被触发,我想获取sshjd839djjd
。我有很多不同键的链接,比如这个,我需要获取正确的数据。
我对Javascript和jQuery了解不多,但我需要它来制作管理面板,我将使用它来管理Firebase中的数据,只是为了解释我在做什么。
我试着避开onClick
而使用.click
,但没有成功。
有人能帮我一下吗?
那么应该加入什么:
function doSomething() {
// grab class which is actually a child key from Firebase which I already implemented
// do Firebase magic, I will know this once I get that key
}
密钥/类是这样添加的:
var resultVetRef = new Firebase("https://myappname.firebaseio.com/data/users");
resultVetRef.on("child_added", function(snapshot) {
var key = snapshot.key();
var data = snapshot.val();
var name = data.name;
var city = data.city;
$("#results").append($("<li class='"" + key + " blahclass'">" + "<a onClick='"grabVet()'">" + name + ", " + city + "</a></li>"));
});
将密钥作为数据添加到li
var resultVetRef = new Firebase("https://myappname.firebaseio.com/data/users");
resultVetRef.on("child_added", function(snapshot) {
var key = snapshot.key();
var data = snapshot.val();
var name = data.name;
var city = data.city;
$("#results").append($("<li class='"" + key + " blahclass'" data-key='""+ key +"'">" + "<a onClick='"grabVet()'">" + name + ", " + city + "</a></li>"));
});
然后像这样:
<li class="sepcialKey blahclass" data-key="sepcialKey"><a>Blah Blah</a></li>
$('a').click(function(){
alert($(this).closest('li').data('key'));
});
以下是演示:https://jsfiddle.net/ffyLgg3s/
特别针对您的示例
<li class="sshjd839djjd blahclass"><a>Blah Blah</a></li>
$('a').click(function(){
alert( $(this).closest('li')[0].classList.item(0) );
});
使用classList和item方法。
或者如果您想使用自己的doSomething
<li class="sshjd839djjd blahclass"><a onclick="doSomething(this)">Blah Blah</a></li>
function doSomething(thisObj)
{
alert($(thisObj).closest("li")[0].classList.item(0));
}
ClassList方法为您提供了一个包含元素所有类的数组。在您的情况下,它将为您的<li>
元素返回数组["specialKey", "blahclass"]
。
function doSomething() {
// get the firs element of classList array and asign it to a variable
var specialKey = this.parentElement.classList[0]; // "this" keyword is the reference to clicked element, "parentElement" give you "li" element reference
// do Firebase magic, I will know this once I get that key
}
或者修改您的附加代码:
var resultVetRef = new Firebase("https://myappname.firebaseio.com/data/users");
resultVetRef.on("child_added", function (snapshot) {
var key = snapshot.key();
var data = snapshot.val();
var name = data.name;
var city = data.city;
// create li element
var li = $("<li class='"blahclass'"></li>");
// create a element
var a = $("<a>" + name + ", " + city + "</a>");
a.on("click", function () {
// when a clicked execute "doSomething" passing key as parameter
doSomething(key);
})
// append a to li
li.append(a);
//append li to #results
$("#results").append(li);
});
相关文章:
- 如何利用多链接延迟检查并显示ping结果,然后使用JavaScript选择最快的URL
- 如何点击标题中的链接,然后返回HTML、Javascript和CSS
- 需要一个链接才能转到某个页面,然后快速返回到当前页面
- 将单击事件附加到按钮或链接上的类,该按钮或链接会触发 AJAX 帖子,然后延迟并继续原始操作
- 附加链接已禁用,然后启用它
- 单击链接时执行异步AJAX调用,然后跟随该链接
- 从页面上点击的链接中删除数据,然后移动到下一页&在CasperJS中重复
- 单击链接滚动到元素,然后向元素添加类
- 如何在第一次点击时突出显示链接;并在第二次单击时跟随它,除非在其他地方单击,然后重新初始化未高亮显示的状态
- 如何在单击链接时启动函数,然后从该链接传递类
- 将 Div 类附加到超链接类 — 然后单击时克隆并附加超链接到容器
- 禁用链接,直到所有动画停止,然后再次启用它们
- 使用 JS 捕获链接 ID,然后定向到链接
- window.打开一个新页面,然后单击新页面中的链接 - JavaScript
- 创建一个超链接(或按钮),用于执行 python 脚本,然后在脚本完成时重定向
- 延迟链接 - 然后在上一个调用完成但出现错误时调用成功回调
- 按键触发 的 CSS 更改,在新选项卡中打开链接,然后回滚到以前的 CSS 状态
- 如何再次单击时将链接的颜色从黑色更改为红色,然后再更改回黑色
- 如果按“链接”然后按钮是白色而不是灰色,如何进行主动导航,这是我尝试 jsfiddle.net/egjg14fr/ 的代
- 导演.js和涡轮链接 - 更改窗口哈希并使用然后返回