表ツール ボタンは、さらに多くの列が表示されているときに表イベントをトリガーすることもできます。

リリース: 2019-11-23 16:38:42
転載
3220 人が閲覧しました

表ツール ボタンは、さらに多くの列が表示されているときに表イベントをトリガーすることもできます。

まず、誰もが遭遇した可能性のある問題のレンダリングを見てみましょう:

表ツール ボタンは、さらに多くの列が表示されているときに表イベントをトリガーすることもできます。つまり、ツールバーの幅が設定されていない場合、圧力が小さかったり、幅の設定が不十分だったりすると、コンテンツのように表示されます...その後、表示ドロップダウン アイコンをクリックすると、より多くのコンテンツが表示されますが、コンテンツとは異なります。通常のtdの場合、ボタンが表示されます。

しかし、クリックしても最初に追加されたツール監視をトリガーすることはできません。これは恥ずかしいことです。列幅を手動でドラッグして他のボタンを表示してからクリックするか、最初に十分な幅を設定する必要があります。幅、しかし、中にあるボタンの数が不明な場合、長さが不明な場合、または非常にたくさんある場合にも問題が発生します。

つまり、ユーザーにコンテンツではなくボタンを主に見てもらうことは実際には不可能です。そのため、それを現実的にする方法はありますか?その後、クリックしてさらに表示し、クリックしたときに元のイベントをトリガーします? ?

この方法は単なるアイデアです。方法はたくさんあると思います。ここでは私の方法を共有します。2 つのイベント デリゲートを使用してそれを実現します。

基本的なコードは次のとおりです:

表ツール ボタンは、さらに多くの列が表示されているときに表イベントをトリガーすることもできます。アイデア分析:

まず、このドロップダウン アイコンにマウスダウン イベントを追加して、現在の表示をさらにデータを記録します。 . どのテーブルのどの tr とどの td か。次に、それを table._tableTrCurr の下に記録します。

一部の学生は、なぜクリックを直接使用しないのかについて質問するかもしれません。これは、イベントの委任もテーブル内で作成されますが、それはドキュメントではなくテーブルの本体に委任されるためです。言い換えれば、実際にドキュメントの外部にデリゲートを書き込むことになります。

モニターをクリックすると、テーブルロジックに到達すると停止します。モニターに入らないので、マウスダウンで回避します。モバイルの場合は問題ありませんか?これは主に Web 側で自分で試すことができます。

次に、別のモニターがあり、開かれたヒントの「ボタン」のクリックを監視し、記録されたばかりの _tableTrCurr 情報を見つけて、必要なテーブルの tr と td を見つけます。見つけてしまえば扱いは簡単で、クリックするだけで table.on('tool') に書かれた内容がトリガーされます。

効果:

表ツール ボタンは、さらに多くの列が表示されているときに表イベントをトリガーすることもできます。

注: この修正は最新バージョン (v2.4.5) に基づいています. 重要なポイントの 1 つはフォームを取得することです。 id、この ID は単にテーブル ノードの ID ではなく、レンダリング後のインスタンスの ID です。

未設定の場合はデフォルトでテーブルのノードのIDになります、未設定の場合はテーブル内にインデックス等がテーブルのIDとして生成されます。 2.4.4 の更新は、誰もが気づきにくいかもしれませんが、非常に重要な変更は、現在のテーブル インスタンスの ID を保存するために、lay-id 属性をテーブルのビューに追加することです。

これは非常に、非常に、非常に使いやすい変更であり、非常に重要です。後で特定のテーブルをリロードしたい場合は、どのノードをリロードしているかがわかっていれば、自然に、リロードしたい tableId を見つけることができます。したがって、まだ 2.4.0 ~ 2.4.3 を使用している場合は、2.4.4 にアップグレードすることを強くお勧めします。

表ツール ボタンは、さらに多くの列が表示されているときに表イベントをトリガーすることもできます。 もちろん、私の tablePlug プラグインを使用する場合は、処理を tablePlug 内で行っているため、実際にはこの問題を心配する必要はありません。レンダリング後に追加され、2.4.4と同じ効果が得られます。

表ツール ボタンは、さらに多くの列が表示されているときに表イベントをトリガーすることもできます。テスト ページ: https://sun_zoro.gitee.io/layuitableplug/testTableReload.html
gitee プロジェクト: https://gitee.com/sun_zoro/layuiTablePlug

実装コードは次のとおりです:

  //缓存当前操作的是哪个表格的哪个tr的哪个td
    $(document).off('mousedown','.layui-table-grid-down').on('mousedown','.layui-table-grid-down',function (event) {
        //直接记录td的jquery对象
        table._tableTrCurrr = $(this).closest('td');
    });

    //给弹出的详情里面的按钮添加监听级联的触发原始table的按钮的点击事件
    $(document).off('click','.layui-table-tips-main [lay-event]').on('click','.layui-table-tips-main [lay-event]',function (event) {
        var elem = $(this);
        var tableTrCurrr =  table._tableTrCurrr;
        if(!tableTrCurrr){
            return;
        }
        var layerIndex = elem.closest('.layui-table-tips').attr('times');
        layer.close(layerIndex);
        table._tableTrCurrr.find('[lay-event="' + elem.attr('lay-event') + '"]').first().click();
    });
ログイン後にコピー

推奨: layui チュートリアル

以上が表ツール ボタンは、さらに多くの列が表示されているときに表イベントをトリガーすることもできます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:layui.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!