我试图在页面加载时触发输入字段上的点击。输入字段放在表单中。
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;。
触发输入字段的点击答案 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的代码巧妙地做到了。我将此添加为对该答案的评论,但我还没有足够的代表。