代碼的“頁面加載時”部分作業正常。
代碼的“進行選擇時”部分有效,但在幾次選擇更改后似乎停止了。希望它在用戶更改選擇時在兩個選擇框上作業的次數一樣多。
https://jsfiddle.net/czqpkL6j/1/
//when page loads
setTimeout(function() {
var iframePreLoad = $("#product-component-1635439141053").children().contents();
iframePreLoad.find(".shopify-buy__option-select__select").ready(function(){
iframePreLoad.find('select[name=Color] option:nth-child(1)').html('Black');
iframePreLoad.find('select[name=Color] option:nth-child(2)').html('Green');
});
//When selection is made
iframePreLoad.find('select').on('change', function() {
setTimeout(function() {
iframePreLoad.find('select[name=Color] option:nth-child(1)').html('Black');
iframePreLoad.find('select[name=Color] option:nth-child(2)').html('Green');
},100)
console.log('selection changed');
});
}, 3000);
uj5u.com熱心網友回復:
不確定這里的環境究竟是什么,但根據經驗進行了瘋狂的猜測:在iframePreLoad.find(..)選擇器決議后元素是否可能發生變化?如果是這樣,匹配選擇器的節點將不會出現在結果集中(出于顯而易見的原因),因此沒有change附加處理程式。
解決此類問題的常用方法是利用事件冒泡并將偵聽器附加到圍繞您要觀察的元素的容器。這樣,您甚至可以從之后更改或添加的元素中捕獲事件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/354509.html
標籤:javascript 查询
上一篇:在反應中將下拉框重置為原始值
