2017-08-24 58 views
0

是否有可能在jQuery中使用/目標兩個通配符類?在同一個變量中,所以我不必創建兩個變量,因此兩個函數做同樣的事情。jQuery目標兩個通配符類

我懷疑它可能是以下但這並沒有奏效:

var triggers = $('[class^="polaroid-carousel__"].trigger', '[class^="polaroid-carousel__"].trigger'); 

當前代碼:

var triggers = $('[class^="polaroid-carousel__"].trigger'); 
var triggers2 = $('[class^="social-wall__"].trigger'); 

$(triggers).each(function() { 
    $(this).on('click', function() { 
    $('#modal-holder').modal('show'); 
    var triggerTarget = $(this).data('target'); 
    $(triggerTarget).show(); 
    $('#modal-holder').on('hidden.bs.modal', function() { 
     $(triggerTarget).modal('hide'); 
    }); 
    }) 
}); 

$(triggers2).each(function() { 
    $(this).on('click', function() { 
    $('#modal-holder').modal('show'); 
    var triggerTarget = $(this).data('target'); 
    $(triggerTarget).show(); 
    $('#modal-holder').on('hidden.bs.modal', function() { 
     $(triggerTarget).modal('hide'); 
    }); 
    }) 
}); 

編輯:

隨着到目前爲止其工作所提供的答案,我剛剛意識到,現在它在點擊時觸發兩者。它需要同時觸發一個或另一個,只是意識到這是設置我認爲的錯誤。

+0

$(childSelector,parentSelector)是你在做什麼。把它們放在一個字符串中,逗號在字符串中。 – Taplar

+0

var triggers = $('[class^=「polaroid-carousel__」]','[class^=「polaroid-carousel __」]')。 –

+0

嗯,我剛剛意識到,它現在觸發兩個點擊時。它需要同時觸發一個或另一個,只是意識到這是設置我認爲的錯誤。 – wharfdale

回答

0

的選擇就合併成一個單一的選擇...

var $triggers = $('[class^="polaroid-carousel__"].trigger, [class^="social-wall__"].trigger'); 
 

 
$triggers.on('click', function() { 
 
    $('#modal-holder').modal('show'); 
 
    var triggerTarget = $(this).data('target'); 
 
    $(triggerTarget).show(); 
 
    $('#modal-holder').one('hidden.bs.modal', function() { 
 
     $(triggerTarget).modal('hide'); 
 
    }); 
 
});

+0

嗯,我剛剛意識到,它現在觸發兩個點擊時。它需要同時觸發一個或另一個,只是意識到這是設置我認爲的錯誤。 – wharfdale

+0

我只是將內部綁定從'on'更改爲'one',所以它只會執行一次,因爲從邏輯上講,我會假設一次只能爲一個目標打開模式。試試看看是否有任何變化。 – Taplar

+0

還要驗證它們在標記中沒有相同的'data-target'。 – Taplar