jQueryを使用していて、あるスパン(と呼ばれる)で計算を表示したいのですが、変更されたテキストがその値に対して何らかの計算を行い、他のスパン( `span2、span3、...と呼ばれるspan1
)で表示したい場合。span1
スパンのテキスト変更をどのように処理できますか?
144813 次
3 に答える
31
Spanには、デフォルトでは「change」イベントはありません。ただし、このイベントは手動で追加できます。
スパンの変更イベントを聞きます。
$("#span1").on('change',function(){
//Do calculation and change value of other span2,span3 here
$("#span2").text('calculated value');
});
そして、span1のテキストを変更するところはどこでも。変更イベントを手動でトリガーします。
$("#span1").text('test').trigger('change');
于 2013-05-23T12:55:17.470 に答える
16
span1のテキストを変更する関数を使用して、他のテキストを変更できます。
回避策として、本当にイベントを発生させたい場合は、change
テキストをスパン1に割り当てないでください。代わりに、jQueryで入力変数を割り当て、それに変更イベントを記述し、スパン1のテキストを変更します。代わりに、入力変数の値を変更して、次のように変更イベントを発生させます。
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を変更すると同時に他のスパンに変更を加えるのが最善です。
于 2012-06-09T05:22:19.693 に答える
5
ここで解決策を見つけました
<span id='span1'>my text</span>
テキスト変更イベントは次のコマンドでキャプチャできるため、span1があるとします。
$(document).ready(function(){
$("#span1").on('DOMSubtreeModified',function(){
// text change handler
});
});
于 2020-07-20T09:12:13.140 に答える