jQuery:单击另一个div元素时,无法在select上调用click事件

时间:2014-07-09 00:20:05

标签: javascript jquery

我有以下HTML代码:

<select id="manufacturer">
            <option value="0">Select a manufacturer</option>
            <option value="Brother">Brother</option>
</select>
<div class="select-widget"></div>

当我按.select-widget div时,我尝试调用click方法进行选择,但没有任何反应!

$('select').next().click(function(){
                            $(this).prev().click();
});

P.S。触发器('click')以相同的方式工作,它不会产生下拉事件!

那么当我点击.select-widget div时如何触发select的下拉事件? Plz帮助这个问题的人!

4 个答案:

答案 0 :(得分:1)

也许我错过了什么,但这会解决你的问题吗? http://jsfiddle.net/p4s6z/2/

HTML:

<select id="manufacturer">
    <option value="0">Select a manufacturer</option>
    <option value="Brother">Brother</option>
</select>
<input type='submit' class='select-widget' onclick='alert("ok")'></input>

使用Javascript:

$('select').on('change',function(){
    $('.select-widget').click();
});

编辑已更新为使用on,感谢@ jme11

答案 1 :(得分:0)

我不确定您正在寻找什么功能,但是您可以使用jQuery中的.click()获得相同的反应,就像您实际点击页面一样。 .click()jQuery函数只能点击&#39;在触发任何点击事件的意义上的元素。

答案 2 :(得分:0)

您需要使用触发器方法。试试这个:

$('.select-widget').on('click', function(){
   $('#manufacturer').trigger('click');
});

$('#manufacturer').on('click', function(){
    $(this).val('Brother');
});

您也明白,jQuery中的click()方法是一个事件处理程序,它是onclick的简写。触发器方法将触发所选元素上的事件。

答案 3 :(得分:0)

如果您的代码要求您触发事件,则可能需要重构。

$(document).ready(function(){

    $('select').on('change',function(){
        $('.select-widget').submit();
    });

    $('.select-widget').on('submit',function(){
        alert('submitted!');
    });

})