簡體   English   中英

觸發器單擊具有特定類和屬性的元素

[英]trigger click an element with a specific class and attribute

我有幾個與某個類相關的鏈接元素,並為其分配了行屬性,我試圖根據屬性值觸發click事件。

 <a class="manage_edit_nb" nb_id="1"></a> | <a class="manage_del_nb" nb_id="1"></a> <a class="manage_edit_nb" nb_id="2"></a> | <a class="manage_del_nb" nb_id="2"></a> <a class="manage_edit_nb" nb_id="3"></a> | <a class="manage_del_nb" nb_id="3"></a>... 

是否可以針對某個類觸發某個屬性值的click或任何事件?

如果我嘗試類似的東西

 $('a[nb_id = "1"]').trigger('click'); 

它會觸發所有元素的click事件而不管是什么類,但我沒有弄清楚如何將類引用放在那里!

這應該工作正常。

$('a.manage_edit_nb[nb_id="1"]').trigger('click');

這是工作:

https://jsfiddle.net/link2twenty/g0txnzfw/

首先, nb_id不是有效屬性,而是使用data-id 允許data-*屬性,我個人喜歡它們。 並且,可以使用$.attr('data-id')方法訪問它們,並且可以使用$.attr('data-id', 'new value')更新它們的值。 回到問題,嘗試使用下面的選擇器

$('.manage_del_nb[data-id="1"]').get(0).click();

要么

$('.manage_edit_nb[data-id="1"]').get(0).click();

為什么.get(0) 假設元素已經與.click(callback()).on('click') .trigger('click').trigger('click')將不會執行任何操作,因此我使用.get(0)來獲取DOM具有該方法來模擬click事件的對象。 無論如何說,你可以按照你已經使用的方式使用trigger('click')

您通過上述代碼嘗試執行的操作是在'.manage_edit_nb'和'.manage_del_nb'選擇器上觸發click事件,因此事件在兩者上都發生。 通過給出類名來嘗試更具體一些

  $('a.manage_edit_nb[nb_id = "1"]').trigger('click');

我認為這正是您所需要的:首先,將所有nb_id更改為data-nb_id 並使用以下代碼,需要jquery。

$(document).ready(function() {
    // Handle click event on the class required 
    $('.manage_edit_nb').click(function(){
        // Get nb_id of that particular anchor event of the class
        var nb_id= $(this).attr('data-nb_id');
        // Switch on nb_id
        switch(nb_id){
            // Handle your cases separately here
            case "1":
            alert('Case 1');break;
            case "2":
            alert('Case 2');break;
            case "3":
            alert('Case 3');break;
        }
    });    
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM