2016-09-10 47 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文件。 –

相关问题