2016-09-10 44 views
-1

爲什麼我的按鈕B不顯示警報彈出?你好,爲什麼我的按鈕B不工作?

下面是我的內部獨立的文件

的.html代碼:

<html> 
<body> 
    <input type="button" class="popup" value="BUTTON A"/><br> 
    <input type="button" class="displaymeh" value="SHOW"/> 
<div id="display"> 
</div> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
<script src="script.js"></script> 
</body> 
</html> 

.PHP:

<?php 
    echo "<input type='button' class='popup2' value='BUTTON B'/>"; 
?> 

的.js:

$(".popup").on('click', function(){ 
    alert("HELLO WORLD!"); 
}); 

$(".popup2").on('click', function(){ 
     alert("HELLO WORLD! 2"); 
}); 

$(".displaymeh").on('click', function(){ 
    $.ajax({ 
     url: 'display.php', 
     success: function(data) { 
     $('#display').html(data); 
     } 
    }); 
}); 

我把按鈕放在.php裏面的原因是因爲我打算在php裏面顯示數據庫表和按鈕來管理數據庫,比如delete。

編輯:不,這與.on('click')與.click()之間的區別不同,爲什麼我在1小時內已經有負面downvote,我永遠不會知道。

+0

[.on('click')與.click()之間的差異可能重複(http://stackoverflow.com/questions/9122078/difference-between-onclick -vs-click) –

+0

1 - 你將有兩個具有相同ID的元素 - 這將導致各種各樣的「樂趣」,2 - 當jquery綁定click事件時,B按鈕不存在,所以這就是爲什麼 –

+0

@u_mulder - 這將解決一半的問題,不知道如何jQuery處理多個相同的ID(可能會) –

回答

1

您每個頁面只允許有1 id同名。 id屬性必須是唯一的。您可以通過給它一個不同的ID(id="popup2")來單獨綁定BUTTON B,或者給它一個類而不是一個id,並使用類綁定代替:

您的HTML也是無效的。創建像這樣的輸入:

<input type="button" class="popup" value="BUTTON A" /> 
<br> 
<input type="button" class="displaymeh" value="SHOW" /> 
<input type='button' class='popup' value='BUTTON B' /> 

另一個問題是該元素在頁面加載時根本不存在。無論何時將新的HTML添加到dom中,您都必須重新進行綁定! 像這樣:

JS:

$(function() { 
    //set the button bindings initially 
    setButtonBindings(); 

    $(".displaymeh").on('click', function() { 
    $.ajax({ 
     url: 'display.php', 
     success: function(data) { 
     $('#display').html(data); 
     //re-set the button bindings after html has been added 
     setButtonBindings(); 
     } 
    }); 
    }); 

}); 

function setButtonBindings() { 
    $('.popup').off("click"); //so it won't trigger multiple times 
    $('.popup').on("click", function() { 
    alert("I like cheese"); 
    return false; 
    }); 
} 

- 嘗試使用.on("click")和這種綁定從現在的上,而不是.click();。這是更可靠的和.click()等是不推薦的功能。他們甚至完全刪除jQuery 3.x

+0

嗨,感謝您的建議,特別是.on('click'),我需要更新。順便說一下,代碼仍然不起作用。 –

+0

看到我更新的答案和示例小提琴。找出你的代碼和小提琴之間的區別。 - OHH等一下,我現在就解決你的問題。對不起,我以前不明白!讓我爲你創建一個快速修復。 – NoobishPro

+0

謝謝主席,我犯了很多錯誤。你的沒有php文件。我的第二個按鈕是在另一個PHP文件。 –

相關問題