1

私は昨日、チュートリアル
を上手に行うことでjQueryの勉強を始めました。現在、チュートリアル28/200を使用ています。これはエラーのように思われるので、このためにjsFiddlesを作成しました。

サンプルコード:jsFiddles

問題: 入力ボタンがアンカーと同様の機能を共有しないのはなぜですか?つまり、段落サイズを縮小または拡大しますか?私はおそらくこれを決してしないだろうという意味ですが、なぜそれが起こるのですか?それもエラーですか?


ドットネットコア>=3.0を使用していますか?ここを見てください。

例として20という数字を取り上げましょう。次のようにバイナリで表すことができます。

    00000000000000000000000000010100

最初に、右シフトしてビット単位でOR処理することにより、最下位ビットを下位ビット位置に「スミア」します。

    00000000000000000000000000010100
 or 00000000000000000000000000001010 (right-shifted by 1)
 is 00000000000000000000000000011110

それから

    00000000000000000000000000011110
 or 00000000000000000000000000000111 (right-shifted by 2)
 is 00000000000000000000000000011111

ここでは、数値が小さいため、すでにジョブを完了していますが、4、8、および16ビットのシフトでプロセスを続行することにより、任意の32ビット数値に対して、からのすべてのビットを確実に設定できます。 0から元の番号のMSBから1。

ここで、「スミア」結果の1の数を数えると、32から単純に減算でき、元の値の先行ゼロの数が残ります。

整数のセットビット数をどのように数えますか?このページには、まさにそれを実行するための魔法のアルゴリズムがあります(「ツリー削減を実行するための可変精度SWARアルゴリズム」...それを取得した場合、あなたは私より賢いです!)、これは次のようにC#に変換されます。

int PopulationCount(int x)
{
    x -= ((x >> 1) & 0x55555555);
    x = (((x >> 2) & 0x33333333) + (x & 0x33333333));
    x = (((x >> 4) + x) & 0x0f0f0f0f);
    x += (x >> 8);
    x += (x >> 16);
    return (x & 0x0000003f);
}

このメソッドを上記の「スミアリング」メソッドとインライン化することにより、整数の先行ゼロをカウントするための非常に高速でループや条件のないメソッドを生成できます。

int LeadingZeros(int x)
{
    const int numIntBits = sizeof(int) * 8; //compile time constant
    //do the smearing
    x |= x >> 1; 
    x |= x >> 2;
    x |= x >> 4;
    x |= x >> 8;
    x |= x >> 16;
    //count the ones
    x -= x >> 1 & 0x55555555;
    x = (x >> 2 & 0x33333333) + (x & 0x33333333);
    x = (x >> 4) + x & 0x0f0f0f0f;
    x += x >> 8;
    x += x >> 16;
    return numIntBits - (x & 0x0000003f); //subtract # of 1s from 32
}
4

2 に答える 2

5

ボタンは実際に(一時的に)機能しています。問題は、入力タイプとして「送信」を使用しているため、フォームが送信され、ページが再レンダリングされることです。

例を修正するには、入力タイプを「ボタン」に変更するか、event.preventDefault();を追加します。各クリックハンドラーに(各ハンドラーのパラメーターとして「イベント」を追加する必要もあります)。

于 2012-05-03T21:12:25.430 に答える
0

それらはそうですが、ボタンをクリックすると、フォームが送信されます。これはあなたが望むものではありません(私は推測します)。クリック ハンドラー関数に preventDefault への呼び出しを追加してみてください。あなたのjsfiddleへの私の変更を見てください。

http://jsfiddle.net/zLvAr/10/

于 2012-05-03T21:14:37.290 に答える