jQuery触发器事件未执行

时间:2015-07-06 15:55:32

标签: jquery

我试图在页面加载时触发输入字段上的点击。输入字段放在表单中。

HTML:

<form>
.... other fieldsets ....
<fieldset>
<ul class="chosen-choices">
<li class="search-field">
<input class="default" type="text" style="width: 147px;" autocomplete="off" value="Choose a category…">
</li>
</ul>
</fieldset>
.... other fieldsets ....
</form>

的jQuery

<script>     
    $('.default').trigger('click',function() {
            console.log( '.trigger() called.');
        });
    console.log('done');        
</script>

jQuery触发器未运行,因为除了“完成”之外没有任何内容出现在控制台中。登录。

我想用类&#34;默认&#34;。

触发输入字段的点击

3 个答案:

答案 0 :(得分:2)

除了问题之外,你的代码没有将click事件绑定到有问题的输入元素,你还没有确保在页面完全加载后动作发生。

将代码放入onload-section($(function(){...}))并绑定一个click事件的函数($('.default').bind(function(){...});,它将起作用。附加.click()(不带参数) )实际上是.trigger('click')的简短形式,并且完全相同,请参见此处(确保打开控制台以查看生成的输出):

$(function(){ // anything in this function gets executed *after* the DOM has finished loading
  $('.default').click(function() {
     console.log( '.trigger() called.');
   }).click(); // same as: .trigger('click');
      console.log('done');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<ul class="chosen-choices">
<li class="search-field">
<input class="default" type="text" style="width: 147px;" autocomplete="off" value="Choose a category…">
</li>
</ul>

此解决方案无需明确使用trigger(),但它会触发之前绑定到DOM元素的click事件,方法是调用.click()而不带参数。

答案 1 :(得分:0)

确保在查看here

之前,将jquery代码放在页面的最后

或者,如果这有助于您的格式化,则可以使用defer =“defer”标记 (请注意,firefox不支持延迟属性

答案 2 :(得分:0)

.trigger()触发点击。它没有处理被解雇的事件。你需要有一个事件处理程序。

@ cars10&#39的代码巧妙地做到了。我将此添加为对该答案的评论,但我还没有足够的代表。