2013-10-03 26 views
0

我有一个php foreach,生成与类.like-button1,2,3,4..的div和生成更多的表格form1,2,3,4..jquery文本和表单提交在特定div类内点击

的目标是,当用户点击“喜欢”点击DIV显示文本消息:

“你喜欢:www.facebook.com/ferrari”

该脚本正常工作,但.hover功能是不是我真正想要的,因为如果你点击like-button1 div中的第一个,并且你继续第二个div,则该文本消息出现在该第二个div上。

我无法找到一个正确的方法来识别正确的div,如果您单击类内部div类似like-button1显示文本消息并提交表单在该div中,而不可能避免只是徘徊另一个div的脚本。

感谢所有。

FB.Event.subscribe('edge.create', function (response) { 

    $(".like-button1").hover(function() {      
     $(".like-button1").text('Ti piace: ' + response); 
     $("#form1").submit(); 
    }); 

    $(".like-button2").hover(function() {      
     $(".like-button2").text('Ti piace: ' + response); 
     $("#form2").submit(); 
    }); 

    $(".like-button3").hover(function() {      
     $(".like-button3").text('Ti piace: ' + response); 
     $("#form3").submit(); 
    }); 

}); 
+0

不知道你在问,改写了什么整个问题 –

回答

2

,而不是使用独特的类,你可以这样做: 添加到div的新属性,叫做data-target=""与表单的id提交。 即

< div class="like-button" data-target="form1" >< /div> 

那么的JavaScript将是这样的:

FB.Event.subscribe('edge.create', function (response) { 
    var formId = $(this).attr('data-target'); 
    $(".like-button").text('');    
    $(this).text('Ti piace: ' + response); 
    $("#"+formId).submit(); 

}); 

这将从所有类清除文本。像按钮和文本添加到被点击的一个。提交表单,其中传递的ID为data-target=""属性。

编写代码这种方式也将缩短的代码,你现在和将来写,因为你肯定会在未来

+0

由于加入更多类似的div量对于你的回复,在我的困惑的问题上......你的代码运行良好,只是没有解决主要问题,我的意思是,我怎样才能识别正确的形式,而不使用悬停功能..因为更多的“像按钮”div生成通过foreach用户可以悬停其他div并发送错误的表单。 – nikz

+0

非常感谢!高超 – nikz