[英]What is acctually .val().trigger('change') doing?
我對項目中的這一行感到困惑:
這個id: categories-product
屬於<select>
,我在項目中看到有人寫道:而且我想知道這基本上是什么意思?
$('#categories-product').val(product.category.id).trigger('change');
請有人能解釋一下嗎?
謝謝
大多數jQuery方法通過返回this
來提供鏈接 (這是您在其上調用方法的jQuery設置)。 這是jQuery API的絕對關鍵部分。 val
是這些方法之一。 因此,該代碼正在執行此操作:
$('#categories-product').val(product.category.id);
$('#categories-product').trigger('change');
...但不必再次查找該元素。
因此,它設置了select的值,然后在其上觸發change
事件(大概是該事件的處理程序執行了某些操作)。
為了更好地理解它,您可以在2條語句中將此行打斷
$('#categories-product').val(product.category.id);
$('#categories-product').trigger('change');
現在,很明顯第一行設置了值,第二行觸發了更改事件。 以上只是將語句合並為一個語句的一種簡便方法。
必須在您的DOM中有一個下拉列表,即select
標簽,其id為categories-product
。
和
$('#categories-product').val(product.category.id).trigger('change');
將某個值設置為選定值,然后觸發更改事件,以便如果在該選擇器上添加了任何更改事件偵聽器,則應執行回調
trigger('change')
實際上將允許javascript運行時執行元素的change事件。 如果您將任何change
事件與該元素相關聯,則這將允許顯式觸發該更改事件。
實際上, trigger()
的工作是僅針對給定事件類型執行附加到匹配元素的所有處理程序和行為。 並且將事件名稱指定為參數只會觸發該事件。 喜歡,
trigger('change') //triggers the change event listener only
trigger('click') //triggers the click event listener only
所以,你的代碼
('#categories-product').val(product.category.id).trigger('change');
將設置#categories-product
的值,然后將顯式觸發change
事件,以便執行與此元素關聯的change
操作。
它在Jquery中稱為Chaining,請在Jquery Chaining中找到更多詳細信息。 相當於
$('#categories-product').val(product.category.id);
$('#categories-product')..trigger('change');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.