我是html和java脚本的新手,试图在页面加载完成时触发点击事件
$(document).ready(function(event){
$("#london").click(function(event){
openCity(event,'London');
});
$("#london").trigger('click'); //this is automatic click
});
此点击正在运行。但在我的功能中
function openCity(evt, cityName) {
var id = evt.toElement.id; //id is undefined only when click event triggered
}
id
仅在触发click事件时未定义,正常时单击它包含值。
答案 0 :(得分:3)
而不是 toElement ,您需要使用目标。
有关详细信息,建议您阅读What is the difference between Event.target, Event.toElement and Event.srcElement?
function openCity(evt, cityName) {
var id = evt.target.id; //id is undefined only when click event triggered
console.log('id: ' + id);
}
$("#london").click(function(event){
openCity(event,'London');
});
$("#london").trigger('click'); //this is automatic click
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="london">london</button>
答案 1 :(得分:2)
使用evt.target.id
代替toElement
- 请参阅下面的演示:
$(document).ready(function(event) {
$("#london").click(function(event) {
openCity(event, 'London');
});
$("#london").trigger('click'); //this is automatic click
});
function openCity(evt, cityName) {
var id = evt.target.id;
console.log(id);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='london'>London</div>
答案 2 :(得分:2)
您可以使用this
关键字作为您的功能,如下所示。
function openCity(element, cityName) {
var id = element.id;
console.log('id: ' + id);
}
$("#london").click(function(event){
openCity(this,'London');
});
$("#london").trigger('click'); //this is automatic click
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="london">london</button>
&#13;
答案 3 :(得分:1)
您最好在函数内部使用this
,然后使用attr('id')
获取相关属性:
function openCity(el, cityName) {
var id = $(el).attr('id');
console.log(id);
}
$(document).ready(function(event){
$("#london").click(function(event) {
openCity(this, 'London');
});
$("#london").trigger('click'); //this is automatic click
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="london">London</div>
您上下文中的
this
是点击的相关元素。
答案 4 :(得分:1)
使用DigitsOnlyEE获取绑定元素。
function openCity(evt, cityName) {
var id = evt.currentTarget.id;
}
这是event
对象的标准属性。它产生与处理程序中this
相同的值。这样,您仍然可以绕过event
对象并获得target
,currentTarget
以及所有其他事件数据。
请注意,target
和currentTarget
可能是两个不同的元素。 target
是最常嵌套的元素,而currentTarget
始终是绑定元素。
由于您希望元素具有id
,因此使用currentTarget
会更安全。对于.trigger()
调用无关紧要,但如果您有嵌套元素,可能会针对实际的人工点击。