Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 将功能从聚合物元件绑定到主体不起作用_Jquery_Html_Function_Polymer_Bind - Fatal编程技术网

Jquery 将功能从聚合物元件绑定到主体不起作用

Jquery 将功能从聚合物元件绑定到主体不起作用,jquery,html,function,polymer,bind,Jquery,Html,Function,Polymer,Bind,我正在尝试做一些类似于纸盒面板的东西,但没有原始组件中的主要部分。我的自定义抽屉工作正常,我只想添加一些功能来实现完整的功能。切换功能工作,但在打开抽屉后,我想将点击和滚动处理程序添加到主体中,所以若菜单按钮未再次按下或抽屉中的未点击元素,则可以通过主体上的点击或滚动处理程序关闭。从单击处理程序开始,但当将其添加到打开函数时,我得到一个引用错误,即我的函数未定义。我不确定我的代码哪里错了,因为openDrawer/closeDrawer函数可以工作,所以我不明白为什么clickOnBody函数不

我正在尝试做一些类似于
纸盒面板的东西
,但没有原始组件中的主要部分。我的自定义抽屉工作正常,我只想添加一些功能来实现完整的功能。切换功能工作,但在打开抽屉后,我想将点击和滚动处理程序添加到主体中,所以若菜单按钮未再次按下或抽屉中的未点击元素,则可以通过主体上的点击或滚动处理程序关闭。从单击处理程序开始,但当将其添加到打开函数时,我得到一个引用错误,即我的函数未定义。我不确定我的代码哪里错了,因为
openDrawer
/
closeDrawer
函数可以工作,所以我不明白为什么
clickOnBody
函数不能工作


(功能(){
var Drawerement=$('mdl-drawer-panel');
var bodyElement=$('body');
var isClosed=‘true’;
聚合物({
is:‘mdl抽屉面板’,
特性:{
},
togglePanel:function(){
如果(已关闭){
这个.openDrawer();
}否则{
这个;
}
isClosed=!isClosed;
},
openDrawer:function(){
drawerrelation.removeClass(“transClose”);
PaureRelation.addClass(“transOpen”);
bodyElement.bind('click',clickOnBody);//添加单击侦听器
console.log('抽屉打开了吗?('+isClosed+'));
},
closeDrawer:function(){
抽屉释放。removeClass(“transOpen”);
PaureRelation.addClass(“transClose”);
bodyElement.unbind('click',clickOnBody);//删除单击侦听器
console.log('抽屉打开了吗?('+isClosed+'));
},
clickOnBody:function(){
bodyElement.togglePanel();
console.log('clicked');
}
});
}());

您的代码中有一些奇怪的东西:)

  • 为什么选择符出现在脚本的顶部?顺便问一下,是jQuery吗
  • 我想你的意思是宣布我被关闭了
  • 切换面板
    不是
    的功能。这就是为什么你会出错
  • 应使用来操纵聚合物内部的节点
  • 你绝对应该致力于分离关注点。我对你的代码做了一些更改。请参阅下面的代码片段

    聚合物({ is:‘mdl抽屉面板’, 特性:{ isClosed:{ 值:true } }, togglePanel:function(){ 如果(本文件已关闭){ 这个.openDrawer(); }否则{ 这个; } this.isClosed=!this.isClosed; }, openDrawer:function(){ Polymer.dom(this.classList.remove('transClose'); Polymer.dom(this.classList.add('transOpen'); console.log('抽屉打开了吗?('+this.isClosed+')); }, closeDrawer:function(){ Polymer.dom(this.classList.remove('transOpen'); Polymer.dom(this.classList.add('transClose'); console.log('抽屉打开了吗?('+this.isClosed+')); } });
    
    var bodyElement=document.querySelector('body');
    var paurerelation=document.querySelector('mdl-drawer-panel');
    bodyElement.addEventListener('click',clickOnBody);
    函数clickOnBody(){
    paureRelation.togglePanel();
    console.log('clicked');
    }
    
    您的代码中有一些奇怪的东西:)

  • 为什么选择符出现在脚本的顶部?顺便问一下,是jQuery吗
  • 我想你的意思是宣布我被关闭了
  • 切换面板
    不是
    的功能。这就是为什么你会出错
  • 应使用来操纵聚合物内部的节点
  • 你绝对应该致力于分离关注点。我对你的代码做了一些更改。请参阅下面的代码片段

    聚合物({ is:‘mdl抽屉面板’, 特性:{ isClosed:{ 值:true } }, togglePanel:function(){ 如果(本文件已关闭){ 这个.openDrawer(); }否则{ 这个; } this.isClosed=!this.isClosed; }, openDrawer:function(){ Polymer.dom(this.classList.remove('transClose'); Polymer.dom(this.classList.add('transOpen'); console.log('抽屉打开了吗?('+this.isClosed+')); }, closeDrawer:function(){ Polymer.dom(this.classList.remove('transOpen'); Polymer.dom(this.classList.add('transClose'); console.log('抽屉打开了吗?('+this.isClosed+')); } });
    
    var bodyElement=document.querySelector('body');
    var paurerelation=document.querySelector('mdl-drawer-panel');
    bodyElement.addEventListener('click',clickOnBody);
    函数clickOnBody(){
    paureRelation.togglePanel();
    console.log('clicked');
    }
    
    Tomasz Pluskiewicz是的,这是jquery,抽屉打开后函数到主体绑定,关闭itTomasz Pluskiewicz后解除绑定,测试了您的解决方案,它可以工作。最大的例外是,向主体添加元素时,还需要向其添加属性。(is closed=“true”)如果没有,则在页面加载后打开抽屉需要按两次按钮。Tomasz Pluskiewicz是,这是jquery,抽屉打开后函数绑定到正文,关闭后函数解除绑定Tomasz Pluskiewicz,测试了您的解决方案,它工作得很好。向正文中添加元素时也需要向其添加属性,这是一个巨大的例外。(is closed=“true”)如果不打开抽屉,则在页面加载后需要按两次按钮才能打开抽屉。