Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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
Javascript 为什么$(';a.current';).parent(';li';).addClass(';current';);它不起作用了吗?_Javascript_Parent Child_Jquery_Jquery Tools - Fatal编程技术网

Javascript 为什么$(';a.current';).parent(';li';).addClass(';current';);它不起作用了吗?

Javascript 为什么$(';a.current';).parent(';li';).addClass(';current';);它不起作用了吗?,javascript,parent-child,jquery,jquery-tools,Javascript,Parent Child,Jquery,Jquery Tools,为什么$('a.current').parent('li').addClass('current')和$(this).hasClass('current').parent('li').addClass('current')不工作 aclick事件必须添加li.current 更新:Dropbox已关闭,因此我已更新 有完整的JS $(函数(){ 变量列表=$(“#列表”), elementsPerRow=-1, 循环=真, //查找第一个图像y偏移以查找每行的图像数 topOffset=lis

为什么
$('a.current').parent('li').addClass('current')
$(this).hasClass('current').parent('li').addClass('current')不工作

a
click事件必须添加
li.current

更新:Dropbox已关闭,因此我已更新 有完整的JS

$(函数(){
变量列表=$(“#列表”),
elementsPerRow=-1,
循环=真,
//查找第一个图像y偏移以查找每行的图像数
topOffset=list.find('a:eq(0)').offset().top,
numTabs=list.find('li')。长度为1,
电流,新电流;
功能更改选项卡(差异){
//a.jQuery工具选项卡插件的当前设置
current=list.find('a.current').parent('li').addClass('current').index();
newCurrent=(循环)?(current+diff+numTabs+1)%(numTabs+1):current+diff;
如果(循环){
如果(newCurrent>numTabs){newCurrent=0;}
如果(newCurrentnumTabs){newCurrent=numTabs;}
if(newCurrent36&&key
.parent()
将只返回元素的直接父元素

如果元素不直接在
  • 元素中,
    .parent('li')
    将返回一个空集

    您可能需要打电话。
    编辑:
  • 是直接家长;这不是你的问题

    hasClass
    函数返回一个布尔值。第二行错误;需要调用
    .filter
    .parent()
    将只返回元素的直接父元素

    如果元素不直接在
  • 元素中,
    .parent('li')
    将返回一个空集

    您可能需要打电话。
    编辑:
  • 是直接家长;这不是你的问题

    hasClass
    函数返回一个布尔值。您的第二行错误;您需要调用
    .filter
    $(this).hasClass('current').parent('li').addClass('current');
    当然不起作用,因为
    hasClass
    返回一个布尔值(true/false)不是jQuery对象。调用后无法继续链接

    您可以改用
    过滤器

    $(this).filter('.current').parent('li').addClass('current');
    
    $(this).hasClass('current').parent('li').addClass('current');
    肯定不起作用,因为
    hasClass
    返回的是一个布尔值(true/false),而不是jQuery对象。调用该值后,无法继续链接

    您可以改用
    过滤器

    $(this).filter('.current').parent('li').addClass('current');
    

    您似乎只在changeTab函数中使用了这段代码

    这似乎只有在使用光标键时才被调用

    如果我转到你的演示并使用光标键,橙色高亮显示会移动。如果我单击它,则不会移动,但没有任何代码可以拾取我可以看到的单击

    编辑添加:(从评论转换而来,意识到这实际上是我答案的延伸)

    在查看了您指向我的tabs代码之后,我仍然不确定它是否在调用changeTab函数中的代码

    如果我将选项卡声明更改为

    .tabs("#content",{effect:'ajax',history:true, onClick:function(){changeTab(0)}})  
    
    然后它将突出显示单击的单元格,但当然不会取消选择旧单元格,因为当前索引已更改

    我在jsfiddle.net/bhvYM(一个fork)上对此做了一个粗略的修复。这涉及到在设置新类之前清除所有li.current类。它有点被黑客攻击,所以可能没有完全按照您想要的方式来做(我没有仔细查看当前/新的代码)但希望这是一个开始,可以帮助你让它工作到你想要的地方


    我的想法是,这至少让我认为是你问题的重点的li类变得更加重要。如果不是这样,那么我完全没有抓住要点。

    你似乎只是在changeTab函数中使用了那一点代码

    这似乎只有在使用光标键时才被调用

    如果我转到你的演示并使用光标键,橙色高亮显示会移动。如果我单击它,则不会移动,但没有任何代码可以拾取我可以看到的单击

    编辑添加:(从评论转换而来,意识到这实际上是我答案的延伸)

    在查看了您指向我的tabs代码之后,我仍然不确定它是否在调用changeTab函数中的代码

    如果我将选项卡声明更改为

    .tabs("#content",{effect:'ajax',history:true, onClick:function(){changeTab(0)}})  
    
    然后它将突出显示单击的单元格,但当然不会取消选择旧单元格,因为当前索引已更改

    我在jsfiddle.net/bhvYM(一个fork)上对此做了一个粗略的修复。这涉及到在设置新类之前清除所有li.current类。它有点被黑客攻击,所以可能没有完全按照您想要的方式来做(我没有仔细查看当前/新的代码)但希望这是一个开始,可以帮助你让它工作到你想要的地方


    我的想法是,这至少让你的问题的重点放在了李课上。如果不是这样,那么我完全没有抓住重点。:)

    您的HTML结构是否正确?可能您的代码没有正确地针对元素。我在问题中添加了JSFIDLE中的HTML。请在问题中发布相关代码。如果链接不再有效,这对回答者以及未来的读者很有帮助。您的HTML结构是否正确?可能您的代码没有针对性正确设置元素。我已将JSFIDLE中的HTML添加到问题中。请在问题中发布相关代码。如果/当链接不再有效时,这对回答者以及未来的读者都很有帮助。
    $('a')。过滤器('.current')。父项('li')。添加类('current'))
    不起作用了。什么东西不起作用了?如果没有一个完整的、有效的示例,很难看出……JSFIDLE不起作用了,部分原因是tabs.js和toolbox.history.js链接不起作用。Dropbox似乎已关闭,所以我更新了完整的js
    $('a')。过滤器('.current')。父('li')。addClass('cur