繁体   English   中英

如何获取已在jQuery中单击的链接

[英]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
}

我尝试了以下链接,问题和答案,但它们没有帮助:

我如何从表单提交事件中获取导致提交的按钮?

jQuery:如何获取提交表单时单击的按钮?

如何检测使用jQuery单击的按钮

jQuery-如何确定单击了哪个链接

我整夜都在尝试,请帮忙...谢谢高级人员...

为什么不把目标定位在类上呢,先获取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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM