3 回答

TA貢獻1895條經驗 獲得超3個贊
您必須了解drupal.behaviors在頁面加載時以及ajax返回結果時觸發。之所以這樣設計,是因為您可能希望您的代碼在ajax結果上再次運行,例如,如果要通過ajax更新頁面的一部分并且需要應用事件偵聽器或添加一個類。
該context變量是這里的關鍵。
在第一頁加載時,上下文將是整個窗口,但是當ajax返回結果時,上下文將恰好是ajax返回的內容。
知道這一點,您應該context在jquery選擇器中使用。
例如。
(function($) {
Drupal.behaviors.myHelpText = {
attach: function (context, settings) {
//code starts
//change placeholder text
$('.form-item-quantity', context).append('<span class="help-block">For orders over 10 call for volume pricing</span>');
$('.help-block', context).css("flex-basis", "100%");
//code ends
}
};
})(jQuery);
為了防止多次處理,您可以使用jquery Once(),但是如果在選擇器中使用context變量,則通常不需要這樣做。jQuery Once()必須加載的單獨庫。
添加回答
舉報