我无法收到开火警报。我缺少什么? (下面的代码位于 WP 插件内)
<?php
wp_enqueue_script('jquery');
?>
<script type="text/javascript">
jQuery('#myTest').click(function(){alert('hi');});
</script>
<?php
echo "<div><input type='button' value='Test' id='myTest' /></div>";
?>
最佳答案
脚本在元素之前处理,因此当您分配处理程序时,#myTest
不存在。交换它们:
<?php
echo "<div><input type='button' value='Test' id='myTest' /></div>";
?>
<script type="text/javascript">
jQuery('#myTest').click(function(){alert('hi');}));
</script>
或者,您可以使用live()它允许将事件绑定(bind)到尚不存在的元素:
<script type="text/javascript">
jQuery('#myTest').live("click", function(){alert('hi');}));
</script>
<?php
echo "<div><input type='button' value='Test' id='myTest' /></div>";
?>
或者利用 jQuery 的 ready()处理程序,当所有元素都被解析后将触发:
<script type="text/javascript">
jQuery(document).ready(function ($) {
$('#myTest').click(function(){alert('hi');}));
});
</script>
<?php
echo "<div><input type='button' value='Test' id='myTest' /></div>";
?>
请注意,在最后一个示例中,我在传递给函数的 $
参数中为 jQuery 命名空间添加了别名。这允许您在 WordPress 中使用 $
进行 jQuery,而不是一直输入 jQuery
。
关于php - 我无法收到火灾警报。我缺少什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4135835/