我有一个php函数:
function myfunc() {
//then I have a div...
echo '<div class="overlay">';
echo "<button onclick=\"$('.overlay').hide();\">Close</button>";
echo '</div>';
}
我的问题是,当我点击关闭按钮时,div没有隐藏。
我在这里做错了什么?
答案 0 :(得分:5)
避免在php代码的输出中硬编码javascript处理程序和内联事件:改为
echo '<div class="overlay">';
echo "<button>Close</button>";
echo '</div>';
之前在您的页面中插入此代码,该代码使用事件委派
检测您对按钮的点击<script>
$(document).on('click', '.overlay button', function() {
$(this).parent().hide()
});
</script>
答案 1 :(得分:2)
尝试:
<button onclick="this.parentNode.style.display = 'none'; return false;">Close</button>
答案 2 :(得分:2)
试试这段代码:
function myfunc() {
//then I have a div...
echo '<div class="overlay" id="overlay" >';
echo "<button onclick=\"hide()\">Close</button>";
echo '</div>';
}
//using the javascript code:
function hide()
{
document.getElementById("overlay").style.display="none";
}
答案 3 :(得分:0)
尝试:
$('.overlay button').live('click',function(
$('.overlay').css({'display': 'none'});
));