提问人:NSsem 提问时间:9/12/2023 最后编辑:freedomn-mNSsem 更新时间:9/13/2023 访问量:38
Jquery触发器更改似乎没有触发功能
Jquery trigger change does not seem to trigger function
问:
我的 Web 应用程序上有这个范围滑块,我的代码的目标是这样的: 当我滑动范围滑块时,它的值使用 jquery 进入数字字段,然后我触发此数字输入字段的更改,之后它应该激活某处定义的函数。
滑块更改的侦听器(已检查选择器是否有效并针对正确的元素):
$('.summary').on('change', 'input[type="range"]', function(){
console.log('confimation');
$(this).parent().parent().find('.quantity input[type="number"]').val($(this).val()).attr('value', $(this).val());
$(this).closest('.bundled_item_button').find('input.bundled_qty').trigger('change');
});
我想用上面的代码触发的数字字段的侦听器(很高兴知道这里是控制台.log返回input.bundled_qty):
this.bind_bundled_item_event_handlers = function( bundled_item ) {
console.log(bundled_item.$self);
bundled_item.$self
/**
* Update totals upon changing quantities.
*/
.on( 'input change', 'input.bundled_qty', function( event ) {
console.log('gevuurd');
var $input = $( this ),
qty = parseFloat( $input.val() ),
min = parseFloat( $input.attr( 'min' ) ),
max = parseFloat( $input.attr( 'max' ) );
if ( wc_bundle_params.force_min_max_qty_input === 'yes' && 'change' === event.type ) {
if ( min >= 0 && ( qty < min || isNaN( qty ) ) ) {
qty = min;
}
if ( max > 0 && qty > max ) {
qty = max;
}
$input.val( qty );
}
// A zero quantity item is considered optional by NYP.
if( bundled_item.is_nyp() && ! bundled_item.is_optional() && min === 0 ) {
bundled_item.$nyp.data( 'optional_status', qty > 0 ? true : false );
}
bundled_item.update_selection_title();
bundle.$bundle_data.trigger( 'woocommerce-product-bundle-update', [ bundled_item ] );
} )
}
当我滑动范围滑块时,它不会向控制台回显任何内容。 对我来说奇怪的是,如果我在同一个 javascript 文件中创建一个新的侦听器,作为针对数字输入的第一个 snippit,它确实会向控制台回显一些东西
$('.cart').on('input change', 'input.bundled_qty', function(){
console.log('changed');
});
最后是 HTML:
<div class="cart" data-title="Stokâlde fryske - 220gram" data-product_title="Stokâlde fryske - 220gram" data-visible="yes" data-optional_suffix="" data-optional="no" data-type="simple" data-bundled_item_id="4" data-custom_data="[]" data-product_id="181"
data-bundle_id="168">
<div class="bundled_item_wrap">
<div class="bundled_item_cart_content">
<div class="bundled_item_cart_details"><span class="price"><span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">€</span>4.75</span> <span class="bundled_item_price_quantity">each</span></span>
</div>
<div class="bundled_item_after_cart_details bundled_item_button">
<div class="quantity">
<label class="screen-reader-text" for="quantity_6500736040691">Stokâlde fryske - 220gram aantal</label>
<input type="number" id="quantity_6500736040691" class="input-text qty bundled_qty text" name="bundle_quantity_4" value="2" aria-label="Productaantal" size="4" min="0" max="4" step="1" placeholder="" inputmode="numeric" autocomplete="off">
</div>
<div class="quantity"><input type="range" min="0" max="4" name="quantityslider"></div>
</div>
</div>
我在这里错过了什么?提前致谢!
答: 暂无答案
评论
this.bind_bundled_item_event_handlers...
this
has_qty_input
[<>]
console.log($(this).closest('.bundled_item_button').length, $(this).closest('.bundled_item_button').find('input.bundled_qty').length)
change
summary
summary
summary
bundled_item_button