ホームページ  >  に質問  >  本文

jquery - jquey tabs ajax load html 冲突问题?

tabs load的html,里面有js,也有html,id,都有可能冲突,如何解决?

(不用ifame哦,iframe每次加载明显不如load,即便是缓存,也要初始化很多的,而且iframe内部带的dialog要在iframe外显示也很费劲,多个页面有同样的dialog也会出现这种问题)

迷茫迷茫2691日前828

全員に返信(1)返信します

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 16:51:51

    3 つのオプションがあります:

    1. 何らかの命名規則を使用して、ID を競合しない形式に変更します。この解決策は被験者の要件に最も合致していないように見えますが、後の段階で多くの問題が軽減されるため、個人的にはこれをお勧めします。これらの HTML が論理的に同じインターフェイス上にある場合は、異なる ID を持つ必要があります。そうしないと、将来ロジックとスタイルを記述するときに問題が発生します。

    2. タブの HTML のみに ID の競合があり、同時に表示されるタブが 1 つだけであると仮定すると、タブを切り取るたびに表示されていないタブを DOM から切り離し、必要に応じて追加することを検討できます。 。

    3. <iframe src="about:blank"></iframe>contentWindow を設定して、<iframe src="about:blank"></iframe> を使用します。 document.body.innerHTML はそのコンテンツを変更できます。それでも HTML の外部スタイルやスクリプト、さまざまなダイアログをうまく表示できるようにしたい場合は、さまざまなハック方法を使用することもできますが、それでもトラブルの絶えないハックです。 <iframe src="about:blank"></iframe> 来显示 html,通过设置 <iframe>contentWindow.document.body.innerHTML 可以修改它的内容。如果还希望能很好的显示 html 的外带样式和脚本,还有各种 dialog,也可以有各种 hack 的方法,但总归是个 hack,后患无穷。

    P.S. 应题主要求,补充一些 hack 的思路。

    1. 如何让 jQuery UI 的 dialog 默认插入到指定的地方?

    可以通过下面代码覆盖 dialog 的默认选项,其中关键的是 appendTo

    追伸 トピック所有者のリクエストに応じて、ハックのアイデアをいくつか追加します。

    🎜 🎜 jQuery UI のダイアログをデフォルトで指定された場所に挿入させるにはどうすればよいですか? 🎜 🎜次のコードを使用してダイアログのデフォルトのオプションをオーバーライドできます。重要なオプションは appendTo オプションです。 🎜 リーリー 🎜このオプションはタブをロードする前またはタブを切り替えた後に毎回設定し、現在表示されているタブノードに設定します。 🎜

    返事
    0
  • キャンセル返事