2017-09-01 51 views
0

如果分度Easy類是存在於體內,我想AJAX運行網址urlEasy.php如果分度Medium類是存在於體內,我希望它運行urlMedium.php我怎樣才能讓我的AJAX網址取決於jQuery的條件?

嘗試使用jQuery全局變量

<script> 
var UrlReplacer = {}; 
$(document).ready(function() { 
    if ($("div").hasClass("Easy")){  
    UrlReplacer = "urlEasy.php"; 
    } elseif ($("div").hasClass("Medium")){ 
    UrlRreplacer = "urlMedium.php"; 
    } 
}); 
</script> 

<script type='text/javascript'> 
$(document).ready(function() { 
    $('#classadderform').on('submit', function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      url : Urlreplacer , 
      type: "POST", 
      data: $(this).serialize(), 
      success: function (data) { 
      }, 
     }); 
    }); 
}); 
</script> 

當我直接寫下如下所示的期望網址時,AJAX運行正常,所以問題與表單,AJAX或鏈接的url不相關。我也很確定地知道,一個類Easy的div存在於身體中。 問題是創建一個全局的JQuery變量,然後我可以使用它來定義URL。

<script type='text/javascript'> 
$(document).ready(function() { 
    $('#classadderform').on('submit', function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      url : "urlEasy.php", 
      type: "POST", 
      data: $(this).serialize(), 
      success: function (data) { 
      }, 
     }); 
    }); 
}); 
</script> 

回答

1

把那些在同一個腳本標記,以避免全局和任何範圍的問題,然後檢查選擇長度,看看是否在DOM

<script type='text/javascript'> 
    $(document).ready(function() { 
     var url = $("div.Easy").length > 0 ? "urlEasy" : "urlMedium"; 

     $('#classadderform').on('submit', function(e) { 
      e.preventDefault(); 
      $.ajax({ 
       url : url + '.php', 
       type: "POST", 
       data: $(this).serialize(), 
       success: function (data) { 

       }, 
      }); 
     }); 
    }); 
</script> 
+0

存在只是出於好奇的元素,是有一種方法可以使用全局變量來做到這一點?我從來沒有能夠獲得由if條件定義的JQuery全局變量的工作,這似乎是一個適合的例子,用來學習如何去做 – Snoops

+0

你真的不應該,但只是爲了演示,像這樣的東西 - > https://jsfiddle.net/zrzykr9g/ – adeneo

+0

非常感謝!爲什麼你建議不要使用全局變量方法? – Snoops