2016-11-07 142 views
0

我有這個問題與Jquery它不執行按鈕單擊後的功能。Jquery函數執行與按鈕點擊

我試圖完成的是當用戶單擊表單提交按鈕時顯示加載模式,然後在頁面加載後它消失。

它顯示頁面加載時的加載模式...但沒有任何按鈕點擊執行。

HTML表單按鈕:

<button type="submit" name="btn-add" id="btn-add">Add Line</button> 

PHP代碼:

//Add Button 
if(isset($_POST['btn-add'])) 
{ 
    //PHP Code (Works Fine) 
} 

JQuery的:

<!-- jQuery --> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 

<script type="text/javascript"> 
    $(window).load(function(){ 
     $(".loading").fadeOut(400); 
     $(".content_wrapper").delay(400).fadeIn(400); 
    }); 

    $('#btn-add').click(function() { 
     $(".content_wrapper").fadeOut(400); 
     $(".loading").delay(400).fadeIn(400);  
    }); 
</script> 
+0

沒有錯誤嗎? jQuery工作嗎? – Tinsten

回答

0

嘗試通過屬性選擇瞄準的按鈕,使等到DOM被加載。 $(document).ready()

$(document).ready(function(){ 
    $('#btn-add[name="btn-add"]').click(function(){ 
     $(".content_wrapper").fadeOut(400); 
     $(".loading").delay(400).fadeIn(400);  
    }); 
}); 
+0

謝謝,這個解決了它......就像@jeroen提到的那樣,JQuery在文檔的 –

0

一個可能的問題可能是您正在嘗試之前,你的點擊處理程序綁定DOM已加載/ #btn-add元素在頁面上。

如果您顯示的JavaScript位於html的頭部,這將是問題所在。

爲了避免這種情況,你應該在加載DOM時綁定你的點擊處理程序:

// Execute this when the DOM is ready 
$(document).ready(function() { 
    $('#btn-add').click(function() { 
     $(".content_wrapper").fadeOut(400); 
     $(".loading").delay(400).fadeIn(400);  
    }); 
}); 
+0

我很好奇這個問題是怎麼回事... – jeroen

0

您將需要延遲表單提交足夠長的時間來顯示您的div。而不是聽點擊按鈕聽表格提交..

<form id='myform'>...</form> 

$("#myform").submit(function(e){ 
    var form = this; 
    e.preventDefault(); // prevent submission 
    $(this).off('submit'); // remove handler to prevent recursion 
    $(".loading").delay(400).fadeIn(400, function(){ // add callback to submit the form in 
     $(form).submit(); // submit the forrm for real.. 
    }); 
});