jQuery的模拟上选择选项单击事件(jQuery simulate click event on

2019-08-17 20:29发布

我有一个触发AJAX请求,一旦其中一个选项已经被点击了一个选择菜单。 我需要从一个链接相关的选项触发click事件。 所以,我有类似下面的代码,虽然它改变了选择的价值,它并不模拟点击:

$('#click').click(function(){
    var value = $(this).attr("rel");
    $('#select').val(value);
    return false;
});

<select id="select" name="select">
    <option>Select...</option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
</select>

<a href="#" rel="1" id="click">Click for option 1</a>

任何帮助将不胜感激。

Answer 1:

该选项触发click事件将无法工作。 这里是做一个片段:

    $('#click').on('click', function(){
        var value = $(this).attr('rel'); //get the value
        value++; //increment value for the nth-child selector to work

        $('#select')
          .find('option:nth-child(' + value + ')')
          .prop('selected',true)
          .trigger('change'); //trigger a change instead of click

        return false;
    });

我已经建立了小提琴这里显示相同。 这应该工作。

而不是使用一个点击就可以触发这种改变事件,并达到相同的效果。



Answer 2:

$('#click').click(function(){
    var value = $(this).attr("rel");
    $('#select')
        .val(value)
        .trigger('click');
    return false;
});

仅仅设置的值的<select>不触发该元素的点击事件; 它必须直接调用。



Answer 3:

这是WooCommerce核心的一部分,所以我不能发布它的全部。 但这里是一个片段,虽然我也不太清楚,如果它会告诉你多少...

.on( 'change', '.variations select', function( event ) {

    $variation_form = $(this).closest('form.variations_form');
    $variation_form.find('input[name=variation_id]').val('').change();

    $variation_form
        .trigger( 'woocommerce_variation_select_change' )
        .trigger( 'check_variations', [ '', false ] );

    $(this).blur();

    if( $().uniform && $.isFunction( $.uniform.update ) ) {
        $.uniform.update();
    }

} )


文章来源: jQuery simulate click event on select option