Jquery文本和表单在特定div类中单击提交

时间:2013-10-03 21:01:34

标签: javascript php jquery css ajax

我有一个php foreach,可以使用类.like-button1,2,3,4..生成div并生成更多表单form1,2,3,4..

目标是当用户点击“喜欢”时,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();
  });

});

1 个答案:

答案 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();

});

这将清除所有类.like-button中的文本,并将文本添加到单击的文本中。提交带有data-target=""属性中传递的ID的表单。

以这种方式编写代码也会缩短您现在和将来编写的代码量,因为您将来无疑会添加更多像div这样的代码