gpt4 book ai didi

javascript - 如何传递和接收 $(this) 作为参数?

转载 作者:行者123 更新时间:2023-11-28 11:57:52 24 4
gpt4 key购买 nike

假设我有两个图像和两个 div。

<html>
<body>
<img id="div0image" class='divImages' alt="" src="../images/div0image.png" />
<img id="div1image" class='divImages' alt="" src="../images/div1image.png" />

<div id="div0" class='divs'></div>
<div id="div1" class='divs'></div>
</body>
</html>

假设 CSS 是这样的

#div0, #div1, #div0image, #div1image {
width: 200px;
width: 200px;
}

现在,假设我有一个像这样的 Javascript 函数

function somethingIsClicked(thisParameter) { //thisParameter needs to be a $(this) object
var thisID = $(this).attr('id'); //$(this) should refer to the object passed in the parameter (thisParameter)

$(this).addClass('checkIfThisClassIsAdded');
alert('works!');
}

然后假设我有这两个函数

$('.divs').click( function() {
somethingIsClicked($(this));
});

$('.divImages').click( function() {
thisID = $(this).attr('id'); //div0image
thisDivsID = thisID.slice(0,4); //div0
$('#' + thisDivsID).each( function() {
somethingIsClicked($(this));
});

是否有正确的方法来传递然后接收 $(this) 作为参数,然后在接收 $(this) 作为参数的函数中引用 $(this) 对象?

最佳答案

是的,使用.call

somethingIsClicked.call(this)

您可以选择向其传递其他参数,例如事件对象:

$('.divs').click( function(event) {
somethingIsClicked.call(this,event);
});

或者,如果您有参数数组,.apply 的工作方式相同。

$('.divs').click( function(event) {
somethingIsClicked.apply(this,[event,{foo:"Hello World!"}]);
});

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call

但是请注意,在这种简化的情况下,这样做更有意义

$('.divs').click(somethingIsClicked);

关于javascript - 如何传递和接收 $(this) 作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19728923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com