gpt4 book ai didi

javascript - Jquery 引用这个

转载 作者:行者123 更新时间:2023-11-30 13:32:23 26 4
gpt4 key购买 nike

给定对象:

// A data set
$.DataArea = function () {

// Default options
$.extend(this, {
class: 'DataSet',
data: new Array(),
container: null
});

// Add a bar to this object
this.addBar = function(startDate, endDate, label) {
var insertPos = this.data.length;
this.data[insertPos] = new $.DataBar();
this.data[insertPos].startDate = startDate;
this.data[insertPos].endDate = endDate;
this.data[insertPos].label = label;

this.container.children('.jobArea').append('<div class="bar-wrapper"><div class="bar">' + label + '</div></div>');



}

// Bind the bar to a div
this.bind = function(docID) {
this.container = $('#' + docID);
this.container.append('<div class="jobArea"></div>')
};

this.init = function() {

this.container.children('.jobArea .bar, .jobArea .marker').each(function(i) {
$(i).bind("selectstart", _preventDefault);
});

};

};

我认为 $(this).bind("selectstart", _preventDefault); 这行行不通,因为 $(this) 冲突>这个对象的

如何以不冲突的方式正确引用 each 循环中的选定元素? (如果这是问题所在)

编辑

正在使用的数据区:

var MyData = new $.DataArea();
MyData.bind("container");
MyData.addBar("", "", "Bar 1");
MyData.addBar("", "", "Bar 2");
MyData.init();

最佳答案

回到使用 this 而不是 i,并使用 find()[docs]方法而不是 children()[docs]方法。

this.init = function() {

//------------v
this.container.find('.jobArea .bar, .jobArea .marker').each(function(i) {
$(this).bind("selectstart", _preventDefault);
});

};

这是必要的,因为 .bar.marker 不是 container 的直接后代。

关于javascript - Jquery 引用这个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6281303/

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