gpt4 book ai didi

javascript - 了解 javascript 中的绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 09:40:28 25 4
gpt4 key购买 nike

我有一个带有 id settings-select 的选择元素。这是我绑定(bind)事件的两种不同方式。为什么即使在第二种方法中使用“绑定(bind)”后,“这个”值也没有绑定(bind)到选择元素。

   1. 
$('body').on( 'change', '#settings-select', function() {
console.log( $(this).val ); // outputs correct select value
});

2.
$('body').on( 'change', '#settings-select', selectSettings.bind( this ) );

function selectSettings() {
console.log( $(this).val() );// Throws error. this -> window object. Why?
}

最佳答案

当使用bind 时,this 不引用当前元素。它指的是 window 对象。

你只需要传递函数引用

$('body').on( 'change', '#settings-select', selectSettings)

根据评论,selectSettings 的一些参数。您可以使用 event.data

var x = 1;
$('body').on('change', '#settings-select', {
value: x
}, selectSettings)

function selectSettings(event) {
console.log(event.data.value, $(this).val());
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id='settings-select'>
<option>1</option>
<option>2</option>
</select>

关于javascript - 了解 javascript 中的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41362122/

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