求助:将已弃用的jQuery .click函数改造为设置变量状态的实现
解决方案
直接将弃用的.click(handler)写法替换为jQuery推荐的.on('click', handler)方式,同时优化空值处理逻辑,避免无效绑定:
for (var x=0; x<buttons.length; x++) { var btn = buttons[x]; var btnClass = btn.btnClass || "btn-primary"; var btnLabel = btn.label || "Label"; var $btn = $('<button type="button" class="btn ' + btnClass + '" data-dismiss="modal">' + btnLabel + '</button>'); // 替换原弃用的.click()绑定逻辑 if (btn.onClick) { $btn.on('click', btn.onClick); } $(".pf-modal .modal-footer").append($btn); }
说明
- 原代码中
$btn.click(btn.onClick || null)的本质是绑定点击事件处理器,而非触发点击,所以不能用.trigger()(.trigger()是主动触发事件,不是绑定)。 - jQuery中
.click(handler)是.on('click', handler)的语法糖,前者已被标记为弃用,推荐使用标准的.on()方法绑定事件。 - 增加
if (btn.onClick)判断,当btn.onClick为null或undefined时跳过绑定,和原逻辑保持一致,同时避免无效的事件绑定操作。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

