1

我有一个php函数:

function myfunc() {

//then I have a div...

echo '<div class="overlay">';
echo "<button onclick=\"$('.overlay').hide();\">Close</button>";
echo '</div>';

}

我的问题是,当我单击关闭按钮时,div 没有隐藏。

我在这里做错了什么?

4

4 回答 4

5

避免在 php 代码的输出中硬编码 javascript 处理程序和内联事件:改为执行

echo '<div class="overlay">';
echo "<button>Close</button>";
echo '</div>';

并且之前在您的页面中插入此代码,该代码使用事件委托检测您的按钮单击

<script>
  $(document).on('click', '.overlay button', function() {
      $(this).parent().hide()
  });
</script>
于 2012-10-18T09:41:38.237 回答
2

尝试:

<button onclick="this.parentNode.style.display = 'none'; return false;">Close</button>
于 2012-10-18T09:42:09.713 回答
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";

}
于 2012-10-18T09:51:11.593 回答
0

尝试:

$('.overlay button').live('click',function(
    $('.overlay').css({'display': 'none'});
));
于 2012-10-18T12:31:56.360 回答