我有一些代码,我循环遍历页面上的所有选择框,并将.hover事件绑定到它们,以便在它们的宽度上做一些麻烦mouse on/off.
这发生在页面准备就绪并且工作得很好.
我遇到的问题是,我在初始循环后通过Ajax或DOM添加的任何选择框都不会受到事件限制.
我找到了这个插件(jQuery Live Query Plugin),但在我用插件添加另外5k到我的页面之前,我想知道是否有人知道这样做的方法,无论是直接使用jQuery还是通过其他选项.
我有一个使用jquery 3.2.1的HTML5应用程序.
在应用程序的一部分 - 搜索功能 - 我发出ajax请求.来自ajax请求的响应是HTML,这包括一个<script>链接到js文件的标记,该文件与应用程序位于同一服务器上.
所以ajax代码看起来像这样 - 用于发出ajax请求并将响应写入具有ID的div #ajaxContent:
$.ajax({
url: $('#searchRegulations').attr('action'),
type: 'post',
cache: false,
data: $('#searchRegulations').serialize()
}).done(function (response, status, xhr) {
if (response) {
$('main .content').hide();
$('#ajaxContent').html(response).show();
return false;
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果我检查#ajaxContent我可以看到<script>标签包含在ajax响应中:
我还检查了我的网络选项卡,以确保/js/search_regulations.js正确加载,它给出了200响应:
里面search_regulations.js有一些jquery切换存在的一些过滤器#ajaxContent.
问题是这个代码似乎只在50%的时间内起作用.当它工作时,它将切换一些过滤器按钮的状态,方法是
.active在内部的元素中 添加/删除一个类.browse-ctp__filters-data,然后将它们写入带有ID的隐藏表单#tmpFilters.
为了确保脚本"触发",我放入了该行,console.log('search_regulations.js firing');并确定每次都会在控制台中显示,无论脚本是否起作用.
更奇怪的是,如果在将ajax响应写入页面后将代码剪切/粘贴到我的控制台中,它总是按预期工作.
这是脚本进入页面的方式有问题吗?
我已粘贴下面的脚本,但我不认为这是代码中的代码问题,而是处理浏览器/ ajax响应的方式:
$(function() {
console.log('search_regulations.js firing');
/* toggle the active …Run Code Online (Sandbox Code Playgroud) 我正在运行带有无限滚动插件的Wordpress Woocommerce-Shop,以自动加载我的商店页面上的下一组产品.
有一些带有下拉菜单的可变产品,在选择属性后显示价格(默认的woocommerce功能).
Unfortunatley此功能仅适用于初始页面加载和打破在向下滚动后加载无限滚动的产品.
所以我想我必须重新初始化每个infinte页面滚动后再次负责该函数的js脚本.无限滚动插件具有以下部分(function(newElements)..),用于在加载新元素后初始化函数.任何想法(如果可能更新安全)如何重新初始化变量产品的woocommerce脚本?我想这至少是add-to-cart-variation.min.js
if (obj_nes.infinitescroll != 'disable') {
nextSelector = obj_nes.nextselector;
nextSelector = '#navigation #navigation-next a';
$masonry.infinitescroll({
navSelector : '#navigation',
nextSelector : nextSelector,
itemSelector : '.product',
prefill: true,
bufferPx : 900,
loading: {
msgText: '',
img: '',
finished: function() {}
}
}, function(newElements) {
// Initialize again
});
}
Run Code Online (Sandbox Code Playgroud) 我有一个javascript对象
function A()
{
this.ini = function()
{
$('#test').html('<button id="click" >Hi</button>');
}
$('#click').on('click',function(){
alert('Hi');
});
}
Run Code Online (Sandbox Code Playgroud)
但我有一个问题,没有使用onClick事件.
谢谢你的帮助