Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在页面加载时激活jQuery/Javascript函数_Javascript_Jquery - Fatal编程技术网

在页面加载时激活jQuery/Javascript函数

在页面加载时激活jQuery/Javascript函数,javascript,jquery,Javascript,Jquery,我试图在两个单独的表上运行javascript/jQuery函数,一旦它们加载完毕,我就尝试向HTML表中添加一个事件hadler onload="filterItems();" 我也尝试过文档准备功能,我真的很困惑 $(document).ready(filterItems); 唯一有效的方法是click事件处理程序,它不适合我的情况 $('.filter-gift').click(filterItems); 我只希望该函数在页面加载时为每个表运行一次,请查看下面的JSFIDLE,因为您

我试图在两个单独的表上运行javascript/jQuery函数,一旦它们加载完毕,我就尝试向HTML表中添加一个事件hadler

onload="filterItems();"
我也尝试过文档准备功能,我真的很困惑

$(document).ready(filterItems);
唯一有效的方法是click事件处理程序,它不适合我的情况

$('.filter-gift').click(filterItems);
我只希望该函数在页面加载时为每个表运行一次,请查看下面的JSFIDLE,因为您可以看到有两个表利用了该函数

我希望它们中的每一个在页面加载时填充那里的过滤器,但是文档准备功能由于某些原因无法工作-我认为可能与有两个表有关

下面是javascript和jQuery im使用的代码:

$('.filter-gift').click(filterItems);   

function filterItems(e) {
    var items = [];
    var table = '';
    tableId = $(this).parent().parent().attr('tag')

      var listItems = "";
        listItems += "<option value='0'> -Select- </option>";
        $('div[tag="' + tableId + '"] table.internalActivities .information').each(function (i) {
            var itm = $(this)[0].innerText;
            if ($.inArray(itm, items) == -1) {
                items.push($(this)[0].innerText);
                listItems += "<option value='" + i + "'>" + $(this)[0].innerText + "</option>";
            }
        });

    $('div[tag="' + tableId+ '"] .filter-gift').html(listItems);

    $('.filter-gift').change(function () {
        var tableIdC = $(this).parent().parent().attr('tag');

        var text = $('div[tag="' + tableIdC + '"] select option:selected')[0].text.replace(/(\r\n|\n|\r| |)/gm, "");;
            $('div[tag="' + tableIdC + '"] .product-information-row').each(function (i) {
                if ($(this).text().replace(/(\r\n|\n|\r| |)/gm, "") == text) {
                    $(this).show();
                    $(this).prev().show();
                    $(this).next().show();
                }
                else {
                    $(this).hide();
                    $(this).prev().hide();
                    $(this).next().hide();
                }
            });           
        });    
}
$('.filter gift')。单击(filterItems);
函数过滤器项(e){
var项目=[];
var表=“”;
tableId=$(this.parent().parent().attr('tag'))
var listItems=“”;
listItems+=“-选择-”;
$('div[tag=“”+tableId+“]table.internalActivities.information')。每个(函数(i){
var itm=$(this)[0];
如果($.inArray(itm,项目)=-1){
items.push($(this)[0].innerText);
listItems+=“”+$(此)[0]。innerText+“”;
}
});
$('div[tag=“”+tableId+“].filter gift').html(listItems);
$('.filter gift').change(函数(){
var tableIdC=$(this.parent().parent().attr('tag');
var text=$('div[tag=“'+tableIdC+'”]选择选项:已选定“[0]。text.replace(/(\r\n |\n |)/gm,”);;
$('div[tag=“”+tableIdC+“].产品信息行)。每个(函数(i){
如果($(this).text().replace(/(\r\n |\n |\r | |)/gm,“”==text){
$(this.show();
$(this.prev().show();
$(this.next().show();
}
否则{
$(this.hide();
$(this.prev().hide();
$(this.next().hide();
}
});           
});    
}
谁能告诉我如何在每个表上运行函数,而不必在页面加载时与它交互。谢谢-我已经省略了我使用的其他脚本,以使它更清晰


谢谢

如果没有附加进一步的要求,首先这是一项相当简单的任务

//jQuery document ready function to get Page Load
jQuery(document).ready(function(){ //Use a directly nested function
  jQuery('.filter-gift').each(filterItems);
});

不幸的是,没有包含“filter gift”类的元素,因此我无法检查“.parent()”引用。

如果没有附加进一步的要求,这是一项相当简单的任务

//jQuery document ready function to get Page Load
jQuery(document).ready(function(){ //Use a directly nested function
  jQuery('.filter-gift').each(filterItems);
});

不幸的是,没有“filter gift”类的元素,因此我无法检查“.parent()”引用。

我确实尝试过,但它不起作用。请在JSFIDLE中自己尝试一下。由于某些原因,它不起作用?onload事件只能附加到一组受限的html标记(表标记不是其中之一)。。。为什么不在body-load上执行脚本呢?我确实尝试过,但它不起作用。在JSFIDLE中尝试一下,因为某些原因它不起作用。onload事件只能附加到一组受限的html标记上(表标记不是其中之一)。。。你为什么不在身体负重的情况下执行脚本??