2014-10-29 68 views
0

我對Jquery世界很陌生,所以有人可以幫我理解我的做我的$("#dothis").html("hit");使內容只眨眼,而不是簡單地顯示? 我認爲該功能是重複它自我,這就是它造成的。爲什麼我的<div> content</div>閃爍?

HTML代碼:

 <form> 
     <select class="plcardFirst"> 
      <option selected value="">-- Choose One --</option> 
      <option value="1/11">A</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      <option value="5">5</option> 
      <option value="6">6</option> 
      <option value="7">7</option> 
      <option value="8">8</option> 
      <option value="9">9</option> 
      <option value="10">10</option> 
      <option value="10">J</option> 
      <option value="10">Q</option> 
      <option value="10">K</option> 
      </select> 
     <select class="plcardSecond"> 
      <option selected value="">-- Choose One --</option> 
      <option value="1/11">A</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      <option value="5">5</option> 
      <option value="6">6</option> 
      <option value="7">7</option> 
      <option value="8">8</option> 
      <option value="9">9</option> 
      <option value="10">10</option> 
      <option value="10">J</option> 
      <option value="10">Q</option> 
      <option value="10">K</option> 
      </select> 
     <select class="dlCard"> 
      <option selected value="">-- Choose One --</option> 
      <option value="1/11">A</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      <option value="5">5</option> 
      <option value="6">6</option> 
      <option value="7">7</option> 
      <option value="8">8</option> 
      <option value="9">9</option> 
      <option value="10">10</option> 
      <option value="10">J</option> 
      <option value="10">Q</option> 
      <option value="10">K</option> 
      </select> 
      <input type="submit" value="Submit" id="Submit"> 
     </form> 
    <div id="dothis"> do this </div> 

腳本:

 <script type="text/javascript"> 
      var valueFirst; 
      var valueSecond; 
      var dlCard; 
      $(document).ready(function() { 
      $(".plcardFirst").change(function() { 
       valueFirst = $(".plcardFirst").val();//player first card; 
      }); 
      $(".plcardSecond").change(function() { 
       valueSecond = $(".plcardSecond").val();//player second card 
      }); 
      $(".dlCard").change(function() { 
       dlCard = $(".dlCard").val();//dealer card 
      }); 
      $("#Submit").click(function(){ 
       $("#dothis").html("hit"); 
      }); 
     }); 
    </script> 
+0

您需要防止默認值。 http://api.jquery.com/event.preventdefault/ – timo 2014-10-29 12:37:56

回答

4

它閃爍,因爲你正在使用一個提交按鈕,因此網頁提交表單並重新加載頁面,你不取消提交操作。

$("#Submit").click(function (e) { 
    e.preventDefault(); //cancel the click 
    $("#dothis").html("hit"); 
}); 
+0

謝謝!我怎樣才能停止頁面刷新? – 2014-10-29 12:38:24

+1

用答案中的代碼。 – epascarello 2014-10-29 12:38:46

+0

...替換'$(「#Submit」)。click(function(){...});'在問題中。 – 2014-10-29 12:42:24

1

你不得不取消事件,不提交表單:

$("#Submit").click(function(event){ 
    $("#dothis").html("hit"); 
    return false; 
}); 

或者你可以簡單地刪除<形式>標籤,如果你不打算處理通過PHP和它的數據將不會再發生。

+0

返回false是event.preventDefault()和event.stopPropagation()所以你不需要preventDefault它的工作.. – 2014-10-29 13:19:41

+0

好吧你是對的我刪除了返回false; – Steini 2014-10-29 13:51:35

+0

不,你只需要'返回false;'我的意思是 - (或換句話說stopPropagation就是這樣做的) – 2014-10-29 14:04:17

1

您的頁面正在再次加載,因爲它是一個窗體,並且您有一個type = submit的按鈕。您需要通過添加e.preventDefault()來防止其正常功能。試試這個:

<script> 
$("#Submit").click(function(e) { 
    e.preventdefault(); 
    $("#dothis").html("hit"); 
}); 
</script> 
1

你正在提交表單,因此頁面得到刷新/刷新。您可以更改按鈕類型,然後嘗試

<input type="button" value="Submit" id="Submit"> 
+0

Working !!感謝這麼多夥伴 – 2014-10-29 12:39:31

+0

高興地幫助你:) – 2014-10-29 12:39:48

1

如果您要提交表單,頁面會刷新,並且您將獲得初始div內容。

如果您不想提交表單,則必須在函數中返回false。

$("#Submit").click(function() { 
      $("#dothis").html("hit"); 
      return false; 
     }); 
+0

如果我想在if/else語句中設置,應該*返回false; *是按原樣放置? – 2014-10-29 12:56:13