jQuery里面的花哨的盒子ajax不工作——init问题
jQuery inside fancy box ajax not working -- init problems
这是我打开一个通过ajax加载页面的Fancybox的代码:
$('tr.record').click(function() {
var record_id = $(this).attr("id");
var link = 'http://' + window.location.hostname + '/expenses/expenses_edit/' + record_id;
$.fancybox({
'transitionIn': 'fade',
'transitionOut': 'none',
'type': 'ajax',
'href': link,
'onClosed': function() {
parent.location.reload(true);
}
});
$.bind("submit", function() {
$.fancybox.showActivity();
$.ajax({
type: "POST",
cache: false,
data: $(this).serializeArray(),
success: function(data) {
$.fancybox(data);
}
});
return false;
});
});
fancybox中的页面有一个表单,其中包含一个带有字符计数器的文本字段:
<form>
...
<textarea name="exp_det" cols="90" rows="12" id="exp_det"></textarea>
<span id="charLeft">150</span> characters left
</form>
父页面通过header加载:
$('#ext_det').keyup(function() {
var len = this.value.length;
if (len >= 150) {
this.value = this.value.substring(0, 150);
}
$('#charLeft').text(150 - len);
});
所以问题是这个字符计数器(和其他jQuery的东西,如验证,日期拾取器)不工作在Fancybox。如果页面没有Fancybox加载,或者通过Fancybox作为内联加载,则它们可以工作。
我明白这似乎是一个相当普遍的问题,但我尝试了所有的解决方案,但没有一个适合我。
我试过了
- 使用不同的ajax页面id
- 将字符计数脚本放在ajax页面的末尾(它甚至没有显示 )在Firebug
- )
- 将字符计数脚本作为
success
中的函数 - 其他疯狂的迭代
这个问题似乎与ajax页面加载后重新初始化jQuery函数有关,因为这些元素在加载父页面时不存在。
有什么建议吗?
您需要重新绑定您的事件处理程序,一旦您在花式框内加载内容或使用JQuery。实时事件绑定机制。出现问题是因为事件处理程序试图绑定到尚未加载的DOM节点,因此需要做的是使用JQuery。live,它会将事件绑定到元素,即使它们还没有加载,或者当你的fancybox的内容已经加载时使用回调函数来绑定事件处理程序。
$(document).ready(function() {
$('#ext_det').live('keyup', function() {
// code to execute on keyup for element with id #ext_det
});
});
相关文章:
- 使setInterval和setTimeout工作时出现问题
- Javascript函数不工作.脚本定位问题
- 火狐中的多个问题,但在 chrome 中工作正常,没有一个问题
- 让关闭工作的问题
- iPad中的Jquery滑块问题,在台式机和笔记本电脑中工作正常
- JAVASCRIPT:Toggle中的Toggle不工作问题
- Chrome's表格布局:修复了更改表格宽度后无法正常工作的问题
- 我的ajax加载栏出了什么问题?为什么它不能正常工作
- 解决小问题(工作不顺利)
- 我正试图获得一个带有复选框的多选下拉列表,在填充项目和获得所有选中的工作时遇到了一些问题
- 在 XSLT 工作表中的 JavaScript 中插入属性的问题
- IE浏览器的Javascript问题,在谷歌浏览器中工作正常,但在IE中则不行
- 在使 dojo 1.7.2 工作时遇到问题
- nivo滑块和光滑的轮播无法协同工作的问题 - jquery
- 使显示隐藏功能正常工作的问题
- iScroll4 和流播放器在安卓设备中工作的问题
- 捏缩放问题 语音间隙构建停止工作
- 关于“AngularJS与Plupload一起工作”的一些问题
- 让地图在谷歌地图 API v3 上工作的问题
- Javascript函数不工作问题