我不知道它是否特定於Magento 2,但是已經設置的jQuery節點附帶的jQuery change
事件的HTML節點在淘汰組件中運行時將丟失其change
事件與附加的VM(查看模型)。jQuery「更改」事件在敲除範圍內被刪除
情況在Magento:
我感動通過佈局XML的product options wrapper到定製塊
<referenceBlock name="product.info.form.options">
// Custom block definition
<move element="product.info.options.wrapper" destination="custom.block" />
</referenceBlock>
這沒有任何問題的作品!
現在,當解決此包裹移動的塊與Magentos custom "scope" binding淘汰賽模式中,所有應用onChange
事件越來越刪除 - 這意味着在這種情況下,配置選項選擇框住禁用。
的change
事件得到應用here in configurable.js
$(element).on('change', this, this._configure);
..這也似乎適合我如何添加事件。
在我的模板文件所以我下面來總結我的淘汰賽組件(裝有VM)解決這個HTML片段:
<div class="tab-content" data-step="1" data-bind="scope:'times'">
// all change events are removed from the configurable widget
<?php echo $block->getChildHtml('product_options_wrapper'); ?>
</div>
任何人都知道,如果這KnockoutJS和jQuery之間,或者如果這有什麼事與Magento做?
更新:
看來這是Magento的一個錯誤: https://github.com/magento/magento2/issues/10261
的原始功能是默認的Magento - 產品詳細頁面,選擇框中有多個可配置的屬性...以及Magento使用jQuery事件監聽器;-)這非常好,但我需要KO模板中的這個完整塊來將自定義值應用於圍繞*此塊過濾器塊的標記*。那有意義嗎? OO – codedge
此外:我將如何再次應用來自Magento核心JS的事件觸發器(請參閱上面的鏈接)? – codedge
這個'$(element).on('change',this,this._configure);'需要在你的'ko.applyBindings(viewModel,document.getElementById(「container」));' –