出于好奇 - jQuery的用例/用例是triggerHandler什么?据我所知道的,唯一的"真实"之间的差异trigger,并triggerHandler为本地事件触发与否,和事件冒泡行为(虽然triggerHandler的冒泡的行为似乎并不很难用复制trigger的代码几行) .确保本机事件不会触发有什么好处?
我很好奇这是否是一个便利功能,或者它存在更深层次的原因,以及我何时/什么时候使用它.
jquery events javascript-events jquery-trigger jquery-triggerhandler
我将一个单击事件添加到一个复选框,该复选框将根据其检查状态显示/隐藏其他字段.我希望处理程序在加载时触发以设置初始页面结构.由于某种原因,triggerHandler不在该领域工作.如果我将其更改为"触发",则处理程序将触发,但复选框状态也将更改.你能看出我做错了什么/为什么triggerHandler不起作用?
$('body').on("click", "#hdimage", function(){
console.log('hd');
if(!$('#hdimage').is(':checked')){
$('.sd-dim').hide();
} else {
$('.sd-dim').show();
}
});
$('#hdimage').triggerHandler('click');
Run Code Online (Sandbox Code Playgroud) 我刚刚遇到这个问题
click锚标记上的触发事件在这里不起作用.
<a class="button2" href="#popup1">hello</a>
<div id="popup1" class="overlay">
<div class="popup">
<div class="contentSpec">
<h2>Would you like to visit</h2>
<h1>someURL</h1>
</div>
<a class="close" href="#"></a>
<div class="content">
<div class="box">
<a class="button" href="#popup1">YES</a>
<a class="button1" href="#popup1">NO</a>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
$(document).ready(function() {
$(".button2").trigger('click');
});
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么触发事件在这种情况下不起作用?
使用triggerHandler()作品单击元素:
$element = $('#gwt-debug-location-pill-edit-div:visible');
$element.triggerHandler('click');
Run Code Online (Sandbox Code Playgroud)
但是,使用它来点击它trigger()不会:
$element.trigger('click');
Run Code Online (Sandbox Code Playgroud)
这是为什么?
要复制它(在Firefox和Chrome中):
->关键字规划师
javascript jquery javascript-events jquery-trigger jquery-triggerhandler
我正在尝试模拟一个 javascript 以从下面的下拉列表中进行选择。我在这里尝试此代码,但它不起作用。
$('select[name="srctype"]').val(2).trigger('change');
Run Code Online (Sandbox Code Playgroud)
我在这里做错了吗?我的javascript是否因为下面的代码布局而搞砸了?
我正在努力选择 value="single"
<select name="srctype" class="formselect" onchange="typesel_change()">
<option value="any" selected="selected">any</option>
<option value="single">Single host or alias</option>
<option value="network">Network</option>
<option value="pptp">PPTP clients</option>
<option value="pppoe">PPPoE clients</option>
<option value="l2tp">L2TP clients</option>
<option value="wan">WAN subnet</option>
<option value="wanip">WAN address</option>
<option value="lan">LAN subnet</option>
<option value="lanip">LAN address</option>
</select>
Run Code Online (Sandbox Code Playgroud) 我有以下代码
$(document).ready(function () {
VerifyCustomerFilter();
$("#ToDateStor").on("DateSet", function () {
...
);
function VerifyCustomerFilter() {
if(toDate != "")
$("#ToDateStor").trigger('DateSet'); //This does not work
}
}
Run Code Online (Sandbox Code Playgroud)
当我在函数'VerifyCustomerFilter()'中的条件为真时,无法触发我创建的自定义事件.
但是,当我在DatePicker的事件中触发事件时,它可以完美地工作:请参阅
$("#calTo").datepicker({
showButtonPanel: false,
onClose: function (dateText, inst) {
var ToDate = $(this).val().toString();
$('#ToDateStor').html(ToDate).trigger('DateSet'); // This works!
}
});
Run Code Online (Sandbox Code Playgroud)
也已经尝试过使用了triggerHandler().
我该怎么做错了?
我有自定义标签的onclick事件的这个功能 densitybtn='yes'
$("[densitybtn='yes']").on('click', function () {
var no_of_people = 0;
//calcdensity
$("[calcdensity='yes']").each(function () {
no_of_people = parseInt($(this).val()) + no_of_people;
});
var total_density = parseInt(carpetArea) / parseInt(no_of_people);
$("#densityVal").html(Myval);
});
Run Code Online (Sandbox Code Playgroud)
我可以通过扩展到$("[calcdensity ='yes']")来扩展相同的代码.on('blur')
$("[calcdensity='yes']").on('blur').$("[densitybtn='yes']").on('click', function () {
});
Run Code Online (Sandbox Code Playgroud)
我不确定在不同的事件上执行相同的代码
让我知道这种方法是否正确?或者有其他可用方式吗?