Javascript父母与子女

时间:2015-08-04 17:20:56

标签: javascript jquery html css

我在另一个函数中使用函数时遇到了问题,但它仍然无法与人们告诉我的父母和孩子一起工作。

你有什么想法吗?

this.suiv.click(function () {
    this.div.parent.children(".crea").each(function () {
        //self.index=parseInt($(this).css("z-index"));
        alert("wesh2");
    }
});

编辑: 以下是我使用页面时实际发生的更多细节。 点击" suiv"工作正常,但问题似乎来自第二个功能" crea"。即使我使用" parentElement"或者"父母"或者" _这个"警报不会弹出。

编辑2: 这是HTML:

<div class="galerie">
        <div class="slider">

        <div class="crea" style="z-index: 9"><img src="img.jpg"></div>
        <div class="crea" style="z-index: 8"><img src="img.jpg"></div>
        <div class="crea" style="z-index: 7"><img src="img.jpg"></div>
        <div class="crea" style="z-index: 6"><img src="img.jpg"></div>
        <div class="crea" style="z-index: 5"><img src="img.jpg"></div>
        <div class="crea" style="z-index: 4"><img src="img.jpg"></div>
        <div class="crea" style="z-index: 3" ><img src="img.jpg"></div>
        <div class="crea" style="z-index: 2"><img src="img.jpg"></div>
        <div class="crea" style="z-index: 1"><img src="img.jpg"></div>

        </div>
        <div class="suiv"></div>
        <div class="prec"></div>

     </div> 

这是我的完整脚本:

$(document).ready(function(){
s = new slider(".galerie");
});

var slider = function(id){
    var self=this;
    this.div = $(id);
    this.nb=0;
    this.index=0;


        this.div.find(".crea").each(function(){


            self.nb++;
                    //alert($(this).css("z-index"));


        });
    alert(this.nb);
        this.index = 0;
        this.suiv = this.div.find(".suiv");
        this.prec = this.div.find(".prec");

        _this=this
        this.suiv.click(function () {
            _this.div.parent().children(".crea").each(function () {
                //self.index=parseInt($(this).css("z-index"));
                alert("wesh2");
            });
        });



}

4 个答案:

答案 0 :(得分:0)

尝试在选择器中使用parentElement代替parent

答案 1 :(得分:0)

语法错误。

this.suiv.click(function () {
    this.div.parent.children(".crea").each(function () {
        //self.index=parseInt($(this).css("z-index"));
        alert("wesh2");
    });
//   ^      
});

答案 2 :(得分:0)

我猜您必须在按“suiv”或“prec”

时更改图像

为什么不这样呢

$('.suiv').on("click").function(){ 
  $('.crea').each(function () {

        $(this).html(itemarrayofimages);

    });
});

答案 3 :(得分:-1)

是的,你的问题是&#34;这个&#34;被覆盖所以this.div.parent是错误的

试试这个:

_this=this
this.suiv.click(function () {
    _this.div.parent().children(".crea").each(function () {
        //self.index=parseInt($(this).css("z-index"));
        alert("wesh2");
    });
});

所以,当你说这个.div.parent你指的是&#34;这个&#34;作为具有您调用div的属性的对象。但是在单击处理程序中,这将引用实际元素。所以我认为人们可能告诉你要做的是

this.parent.children( 

this.div.parent.children(

因为处理程序中的这个对象是单击的对象,所以它的父对象是包含你想要使用的其他兄弟的对象。

Javascript&#39; s this在进行&#34;类&#34;时会感到困惑。所以你写道:

var myclass=function(){
    this.abc="hi"

    this.doStuff=function(){
        _this=this;  // "this" is still myClass

        //but this will be overwritten in a jquery event handler
        //so you'll want to store "this" for use in event handlers
        $('div').click(function(){console.log(this, _this)});
    }

};