Вопрос по javascript, jquery, javascript-events – JQuery: как обрабатывать изменения текста диапазона

35

Я использую jQuery и хочу показать некоторые вычисления в промежутке (называемыйspan1) а я хочу когда текстspan1 изменено, сделать некоторые вычисления для его значения и показать в других диапазонах (называемых `span2, span3, ...). Как я могу справиться с изменением текста span?

Спасибо

Пожалуйста, отправьте ответ с наблюдателем мутации здесь:trigger-for-span-text-html-on-changed Anil Uttani
Вы должны справиться с этим везде, где вы меняете значение<span>. Alexander
& Quot;This event is limited to <input> elements, <textarea> boxes and <select> elements& Quot; SpYk3HH
это не работает Arian

Ваш Ответ

2   ответа
15

которая изменяет текст span1, чтобы изменить текст других.

Как обойти, если вы действительно хотите иметьchange событие, затем не назначайте текст для span 1. Вместо этого присвойте входную переменную в jQuery, запишите в нее событие change и, когда вы измените текст span1 .. вместо этого измените значение вашей входной переменной, запустив событие change , вот так:

var spanChange = $("<input />");
function someFuncToCalculateAndSetTextForSpan1() {
    //  do work
    spanChange.val($newText).change();
};

$(function() {
    spanChange.change(function(e) {
        var $val = $(this).val(),
            $newVal = some*calc-$val;
        $("#span1").text($val);
        $("#spanWhatever").text($newVal);
    });
});

Хотя я действительно чувствую, что этот «обходной путь», хотя и полезен в некоторых аспектах создания простого события изменения, очень растянут, и вам лучше будет вносить изменения в другие диапазоны одновременно с изменением span1.

26

это событие вручную.

Прослушайте событие изменения диапазона.

$("#span1").on('change',function(){
     //Do calculation and change value of other span2,span3 here
     $("#span2").text('calculated value');
});

И где бы вы не изменили текст в span1. Запустите событие изменения вручную.

$("#span1").text('test').trigger('change'); 
В то время я использовал IE 11. спасибо
@SiddiqueMahsud: IE имеет много версий, которые ведут себя по-разному. Просто заявив, что IE означает в*all из них? И каково все определение тогда? Включая «край»?
Вы пробовали это в IE? он работает в Chrome, но не работает в IE для меня.

Похожие вопросы