我试图在#34; jquery对话框中使用javascript代码"我的代码不止一次执行。
简单的例子..
<div id='dialog'>
<script type="text/javascript">
$(document).ready(function () {
console.log('inside');
});
</script>
</div>
<script type="text/javascript">
$(document).ready(function () {
console.log('Dialog init');
$('#dialog').dialog();
})
</script>
我的输出是:
答案 0 :(得分:2)
也许这就是你想要的,请cmiiw:)
<div id='dialog'></div>
<script type="text/javascript">
$(document).ready(function () {
console.log('Dialog init');
$('#dialog').dialog();
})
$( "#dialog" ).dialog({
open: function() {
console.log('inside');
}
});
</script>
答案 1 :(得分:1)
那么那就有意义了......
jQuery可能会将#dialog
的内容定位到某处,内部代码会再次执行。
为什么#dialog
框中有JS?是否装有XHR?如果不是:将其移动到剩余的domready代码所在的位置。
您希望在显示对话框时触发事件吗?这就是对话框中有代码的原因吗?如果是这样,那就有事件API:http://jqueryui.com/demos/dialog/#events
答案 2 :(得分:1)
执行以下操作:
<div id='dialog'></div>
<script type="text/javascript">
$(document).ready(function (){
console.log('Dialog init');
$('#dialog').dialog({
open: function() {
console.log('inside');
}
});
})
</script>
使用open事件会导致代码在对话框打开时运行,而不是在文档准备就绪时运行。