gpt4 book ai didi

javascript - Jquery 不触发 click() 以触发一个 div id

转载 作者:行者123 更新时间:2023-11-27 23:53:55 26 4
gpt4 key购买 nike

在我的 erb 文件中,我有一个这样的脚本:

function checkJquery() {
if(window.jQuery) {
jQuery(document).ready(function() {
alert('onready');
$('div#habla_topbar_div').click(function() {
alert('onclick');
});
});
}
else {
window.setTimeout(checkJquery, 1000);
}
}

我收到“onready”警报,但“onclick”警报不起作用。知道我可能做错了什么吗?

编辑:div 是 Olark 聊天集成的一部分,erb 文件除了那个配置和上面的脚本之外什么都没有。

div 'habla_topbar_div' 已定义。图像: via 'Inspect Element'

最佳答案

这里有几个特定于 Rails 的问题

--

委派

因为大多数 Rails 应用程序使用 Turbolinks 或类似的,你必须 delegate your Javascript (通常)来自 document 对象:

#app/assets/javascripts/application.js
$(document).on("click", "#habla_topbar_div", function() {
alert('onclick');
});

如果你在没有嵌入其他 JS 函数的情况下使用它,考虑到你有一个带有 id=habla_topbar_div 的 div,它应该可以工作。

--

Turbolinks 事件

其次,您要确保用 Turbolinks event hooks 之一替换标准的 $(document).ready 函数.您需要执行以下操作:

#app/assets/javascripts/application.js
var your_function = function(){
...
}
$(document).on("page:load ready", your_function);

关于javascript - Jquery 不触发 click() 以触发一个 div id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25226850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com