![](/img/trans.png)
[英]How to detect the div in which a link to a javascript function has been clicked
[英]How to get which link has been clicked in jquery
美好的一天...
我有多个链接,如下所示:
<li><a href="#" id="mmSaveForm" class="itemDisabled noTxtSelect1">Save</a></li>
<li><a href="#" id="mmSaveAs" class="itemDisabled noTxtSelect1">Save As</a></li>
<li><a href="#" id="mmSaveExit" class="itemDisabled noTxtSelect1">Save And Exit</a></li>
我想知道单击了哪个链接,所以尝试了以下操作:
if ($("#mmSaveForm").click() == "true") {
//do something
}
else if ($("mmSaveAs").click() == "true") {
//Do something
}
else if ($("#mmSaveExit").click() == "true") {
//Do something
}
我尝试了以下链接,问题和答案,但它们没有帮助:
我整夜都在尝试,请帮忙...谢谢高级人员...
为什么不把目标定位在类上呢,先获取id
然后使用switch语句。
$('.itemDisabled').on('click', function () {
var id = this.id;
switch(id) {
case 'mmSaveForm':
// code
break;
case 'mmSaveAs':
// code
break;
case 'mmSaveExit':
// code
break;
}
});
尝试使用.is(selector)
标识已单击的元素,
$('a.noTxtSelect1').click(function(e){
e.preventDefault();
if($(this).is("#mmSaveForm")){
} else if($(this).is("#mmSaveAs")) {
} else if($(this).is("#mmSaveExit")) {
}
});
如果您的链接具有id
属性,所有属性均以“ mm”开头,则可以使用:
$('a[id^=mm]').on('click', function(){
console.log(this.id);
});
或在一堂或多堂课上:
$('a.itemDisabled').on('click', function(){
-要么-
$('a.itemDisabled.noTxtSelect1').on('click', function(){
在click事件中,您可以使用switch来确定所单击的链接,您可以使用this
或$(this)
获取链接
例如:
$('a[id^=mm]').on('click', function () {
switch (this.id) {
case "mmSaveForm":
alert(this.id);
break;
case "mmSaveAs":
alert(this.id);
break;
case "mmSaveExit":
alert(this.id);
break;
}
});
将常见的类(例如itemDisabled)用于click事件并获取ID,
$(".itemDisabled").click(function (e) {
e.preventDefault();
var id = this.id;
if (id === "mmSaveForm") {
} else if (id === "mmSaveExit") {
} else {}
});
您可以使用[attr^="value"]
[“开头为”]选择器:
$('[id^="mmSave"]').click(function(event){
event.preventDefault();
var action = this.id;
// do your business
});
您正在以错误的方式思考。 在你的
$(document).ready(function() {})
您注册点击事件。 所以像
$(document).ready(function() {
$("#mmSaveForm").click(function() {
// handle the click
});
});
也许你可以试试这个
$(function(){
$('.linkclass').click(function(){
var link_text = $(this).text();
alert('the clicked link text is '+ link_text);
});
});
不需要jQuery,请看下面的代码
<!DOCTYPE html >
<html >
<head>
<script>
function clickbtn(t)
{
alert(t.id);
/*if(t.id==...)
{
dosomething();
}
else
{
dootherthing();
}
*/
}
</script>
</head>
<ul>
<li><a href="#" onclick="clickbtn(this)" id="mmSaveForm" class="itemDisabled noTxtSelect1">Save</a></li>
<li><a href="#" onclick="clickbtn(this)" id="mmSaveAs" class="itemDisabled noTxtSelect1">Save As</a></li>
<li><a href="#" onclick="clickbtn(this)" id="mmSaveExit" class="itemDisabled noTxtSelect1">Save And Exit</a></li>
</ul>
<body>
</body>
</html>
工作正常。 希望对您有所帮助!
这是我的html页面(Django模板):
<div class="col">
{% for blog in blogs %}
<div class="post">
<h3><a href="{% url 'blog:detail' pk=blog.pk %}">{{ blog.title }}</a></h3>
<div class="date">
<p>Created: {{blog.date_created|date:'d M Y'}}</p>
</div>
<p>{{ blog.brief|safe }}</p>
<ul class="nav justify-content-end">
<li class="nav-item">
<a class="nav-link active" href="{% url 'blog:edit' pk=blog.pk %}">Edit</a>
</li>
<li class="nav-item">
<a class="nav-link" id="publish" href="{{blog.pk}}">Publish</a>
</li>
<li class="nav-item">
<a class="btn btn-danger" id="remove" href="{{blog.pk}}">Remove</a>
</li>
</ul>
<br>
</div>
{% endfor %}
</div>
在我的javascript文件中,这是有的并且有效。
$(document).ready(function() {
console.log("document is ready!!!")
$('#id_bloglist').on("click", 'a#publish,a#remove', function(e) {
e.preventDefault()
var pk = $(this).attr("href")
if ($(this)[0].id == 'remove'){
console.log("remove link clicked, calling deleteBlog with pk = " + pk)
}
else if ($(this)[0].id == 'publish'){
console.log("publish link clicked, calling publishBlog with pk = " + pk)
}
return false;
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.