Javascript 在其他事件处理程序之后实现事件处理程序
我在页面上有几个单选按钮和span元素。当我单击某个单选按钮时,Onchange事件处理程序触发并更改span元素的文本。我没有访问该事件处理程序的权限,因此无法更改它。 我需要编写自己的脚本(也是Onchage事件处理程序),它将在其他脚本(如上所述)更改DOM中的span元素之后更改span元素的文本。 例子: HTML: 我无法更改上面的javascript代码。 我需要编写onChange事件处理程序,以根据上面的脚本生成的新值更改跨度的html。请允许我写:Javascript 在其他事件处理程序之后实现事件处理程序,javascript,jquery,Javascript,Jquery,我在页面上有几个单选按钮和span元素。当我单击某个单选按钮时,Onchange事件处理程序触发并更改span元素的文本。我没有访问该事件处理程序的权限,因此无法更改它。 我需要编写自己的脚本(也是Onchage事件处理程序),它将在其他脚本(如上所述)更改DOM中的span元素之后更改span元素的文本。 例子: HTML: 我无法更改上面的javascript代码。 我需要编写onChange事件处理程序,以根据上面的脚本生成的新值更改跨度的html。请允许我写: $('div input:
$('div input:radio').change(function(){
alert($(#change).html());
});
我将提醒旧的跨度值。
如何实现这一点?好的,所以问题是调用
.html()
实际上不会触发事件(在这种情况下可能会调用更改事件),所以您必须扩展jQuery(实际上没有那么难),这样您就可以听一些东西,您可以尝试以下方法:()
好的,所以问题是调用
.html()
实际上不会触发事件(在这种情况下可能会调用更改事件),所以您必须扩展jQuery(实际上没有那么难),这样您就可以听到一些东西,您可以尝试以下方法:()
如果没有代码,我们无法帮助您为什么不能更改当前事件处理程序?因为云服务上的站点主机我有一个解决方案,但它不好。setTimeout(function(){alert($(#change).html());},1)我看不到你所说的效果:没有代码,我们无法帮助你为什么不能更改当前的事件处理程序?因为云服务上的站点主机我有一个解决方案,但效果不好。setTimeout(function(){alert($(#change).html());},1)我看不出你所说的效果:问题是它只是一个例子。在scipt代码中,更改跨度值的逻辑并不是那么简单,我无法更改。是否还要尝试添加到您的问题的代码示例中,以便更接近您所面临的问题?问题是,它只是示例。在scipt代码中,更改跨度值的逻辑并不是那么简单,我无法更改。是否要尝试在您的问题的代码示例中添加一个更接近您所面临问题的示例?
$('div input:radio').change(function(){
//some logic here
//calculation of value of the varaiable 'new_value' is encapsulated
//new_value = .....
$(#change).html(new_value);
});
$('div input:radio').change(function(){
alert($(#change).html());
});
(function ($) {
// create a reference to the old `.html()` function
var htmlOriginal = $.fn.html;
// redefine the `.html()` function to trigger an event
$.fn.html = function (html) {
var ret = htmlOriginal.apply(this, arguments);
//if ret is a String then there is no event to trigger
if(typeof ret !== "string") {
ret.trigger('html-change');
}
return ret;
}
})(jQuery);
$(function () {
$('div input:radio').change(function () {
var v = $(this).val();
//Original and magical value
setTimeout(function () {
//Just doing some async stuff to prove that these are decoupled
$('#change').html(v);
}, 500);
});
$('#change').on('html-change', function () {
//Now just listen to the html-change event which will be triggered any time .html() is called even that call was made by previously unmodified code)
alert($(this).html());
});
});