我有一个案例,在一个jQuery代码块(文件)中定义/分配了一个单击处理程序,我想从另一个jQuery代码块中定义/分配的另一个单击事件触发它。我怎么能做到这一点?
以下代码是我想要完成的大大简化的版本。当我点击#Element2
时,我想看到的是一个JavaScript警报“Element One”。
示例HTML:
<p id="Element1">Element One</p>
<p id="Element2">Element Two</p>
第一个jQuery代码块:
$(document).ready(function() {
$('#Element1').click(function() {
alert('Element One');
});
});
第二个jQuery代码块:
$(document).ready(function() {
$('#Element2').click(function() {
$('#Element1').click();
});
});
更新:我的原始示例确实有效。我正在建立我的字段提示jQuery UI Dialog solution,并没有说明我正在使用的'clickoutside' handler。在我的'clickoutside'处理程序中为第二个元素添加一个检查允许显示对话框。
答案 0 :(得分:2)
单击第一个元素时需要触发单击。您可以使用trigger方法。
function element1Hanlder () {
alert('Element One');
}
$(document).ready(function() {
$('#Element1').click(function() {
alert('Element One');
});
});
$(document).ready(function() {
$('#Element2').click(function() {
$('#Element1').trigger('click');
});
});
答案 1 :(得分:1)
如果我从外部js文件加载此块...
$(document).ready(function() {
$('#Element1').click(function () {
alert( $(this).text() );
});
});
然后将其加载到HTML本身的脚本标记中......
$(document).ready(function() {
$('#Element2').click(function () {
$('#Element1').trigger('click');
});
});
似乎按预期工作。