繁体   English   中英

jQuery在单击不同元素时调用相同方法

[英]jQuery call same method on click of different elements

我有以下jquery代码,单击div元素时,将发生操作。 我想添加相同的单击动作Canvas.showContentDoc(d); #document元素中的href

如果用户单击<i class='fa fa-angle-double-down'></i> ,我希望执行相同的操作,如何实现呢?

for (node in obj.nodes) {
    var d = obj.nodes[node];
    var color_document = "blue"
    jQuery('<div/>', {
        id: 'document' + d.id,
        class: 'document',
        click: function (d) {
            Canvas.showContentDoc(d);
        }
    }).appendTo(title)

    $('#document' + d.id).append("<span class='fa-stack fa-1x'>  <i class='fa fa-circle fa-stack-2x' style='color:rgba(110,130,34, 1)'></i><i class='fa fa-file fa-stack-1x' style='color:" + color_document + "'></i></span> : " + d.label + " (" + d.id_doc + ")<a href='#'> <i class='fa fa-angle-double-down'></i> </a> ");                    

    Canvas.selectedNodesInfos[nodes_iteration + id_start]['label'] = d.label;

    nodes_iteration += 1;
    }

这是非常简单 jQuery中:

$("selector1, selector2, selector3").on("click", function(){
   Canvas.showContentDoc(d);
});

jsFiddle上检查它或尝试以下演示:

 $(document).ready(function(){ $("#button_1, #span_1, #anchor_1").on("click", function(){ sameMethod(); }); }); function sameMethod(){ alert("same method called."); console.log("same method called.") } 
 .clickable{ display: block; padding: 5px; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> <button id = "button_1" class = "clickable"> Click Me </button> <span id = "span_1" class = "clickable"> Click Me </span> <a href="#" id = "anchor_1" class = "clickable">Click Me</a> </div> 

您可以使用.querySelector()添加事件侦听器,如下所示:

document.querySelector('li.fa.fa-angle-double-down').addEventListener('click', function() {
  Canvas.showContentDoc(d);
});

这是一个非常简单的示例:

 document.querySelector('li.fa.fa-angle-double-down').addEventListener('click', function() { alert('Clicked!'); }); 
 <li class="fa fa-angle-double-down">List item</li> 

您可以将<i class='fa fa-angle-double-down'></i>包装在<a>

示例: <a href="#" onclick="Canvas.showContentDoc(d);"> <i class='fa fa-angle-double-down'></i></a>

尽管我认为最好一直使用JS,请参见@dsharew答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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