gpt4 book ai didi

javascript - 如何在 jQuery 中向 `change` 事件添加属性

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

我有一个<select>框:

<select id="myselect">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>

我需要修改它的change事件,所以它会有 val_after_change属性,无论事件如何触发。

// THIS FUNCTION CANNOT BE MODIFIED
$('#myselect').change(function(e){
// this should alert select value after change
alert(e.val);
});

我知道,在这里我可以 alert $(this).val() ,但我的真实示例更复杂,需要 e.val 。我知道这适用于 select2 ,但我无法理解他们的源代码。

如何修改事件?我需要做 wrapper 什么的吗?任何帮助将不胜感激。

编辑:

我正在一个库上制作一个包装器,这使得 selects使用e.val属性,所以我无法修改 change事件本身。当事件触发时,我需要该属性已经存在。像这样的东西,但将其设为默认行为:

e = jQuery.Event('change', {val: 2});
$('#myselect').trigger(e);

JsFiddle

最佳答案

我不确定我是否明白,这是一个尝试:

(function ($){
// keep a copy of the original "select2" function
var lib_select2 = $.fn.select2;

// wrap it into a call which
// first adds a listener to add the value as a property of the event,
// then adds whatever extra stuff the library adds
$.fn.select2 = function(){
this.change(function(e){
e.val = this.value;
});

lib_select2.apply(this, arguments);
}
})(jQuery)

关于javascript - 如何在 jQuery 中向 `change` 事件添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15477834/

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