0

特定の条件が満たされた場合にのみ、JQuery トグル関数 (入力フィールドを切り替えてクライアントがアクセスできるようにする) を実行したいと思います。(JavaScript を使用して条件をテストしています。) これを行うことはできますか? JavaScript関数内に設定するとなぜかJQueryのトグル関数が動かなくなってしまい、何か間違っているのか、それともまったくできないのかわかりません。

<script type="text/javascript">
function conditionalToggle()
{
   if (conditionIsMet)
   {
      // JQuery toggle call here
   }
}
</script>
4

3 に答える 3

3

おそらく、jQuery を正しく使用していないか、関数を実行していないか、または (新しい jQuery ユーザーの最も一般的な間違い) DOM の準備が整うのを待っていません。

function foo(){
    if ("foo" === "foo")
        $('#elementId').toggle();
}

$(function(){ // functions inside $() runs after the DOM is ready.
    foo();
});

elementId要素 ID のプレースホルダーはどこにありますか。
簡単なデモ


toggleこのオーバーロードを使用できることに注意してください。

$('#elementId').toggle(showTheElementOrNot);

toggle( showOrHide )
showOrHide要素を表示するか非表示にするかを示すブール値。

jQuery ドキュメント

于 2012-05-17T14:50:22.703 に答える
1

ready()関数内の場合、jQueryは機能するはずです

<script type="text/javascript">
$(function() {
   function conditionalToggle(){
      if (conditionIsMet) {
         $(element).toggle();
      }
   }
});
</script>

または単に行う:

<script type="text/javascript">
    function conditionalToggle() {
       if (conditionIsMet) {
          element.style.display = element.style.display=='block' ? 'none' : 'block';
       }
    {
</script>
于 2012-05-17T14:52:46.777 に答える
0

DOM の準備ができたら実行できます。まだ問題がある場合は、次のようにすることもできます。

<script type="text/javascript">
   $(window).load(function() {
        conditionIsMet && $('#elementId').toggle();
   });
</script>
于 2012-05-17T15:43:51.703 に答える