jQuery alternativa alternativa, no pudo entender lo que está pasando aquí -- jquery campo con ajax campo con smarty camp Relacionados El problema

jquery toggle alternative, couldn't understand what's happening here


1
vote

problema

Español

Parece que parezca ser muy fácil para ustedes, pero soy un poco nuevo en JQery y Ajax. He mirado a todas partes y no pude resolver el problema durante horas. Mi problema es lo siguiente;

Tengo un enlace HTML con el nombre de la clase Siga

  <a href="#" class="follow">  {if $is_following == 0} follow {else} following {/if}  </a>   

La Declaración IF-MOSS es solo un uso de Motor de plantilla Smarty. es muy simple. Si el usuario sigue a otro usuario, muestre el valor 'Siga', de lo contrario, muestra el valor 'siguiente'.

Mi jQuery es lo siguiente;

  var $values; $('.follow').mouseover(     function()     {         $values = $(this).html();         if($values == 'following')         {             $(this).html('unfollow');         }     } );  $('.follow').mouseout(      function()     {         $(this).html($values);     } );  $('.follow').toggle(      function(){         $(this).html('following');         $values = "following";     },     function(){         $(this).html('follow');         $values = "follow";          } );  //follow ajax call     $('.follow').click(function(){      var $op = $(this).html();     var $other_profile_id = $('#other_profile_id').text();      if($op == 'follow')     {                            $.ajax({             type : 'POST',             url : 'ajax_service.php',             dataType : 'json',              data: {                 op : $op,                 other_profile_id : $other_profile_id             },                       success : function(data){                             },             error:function (error){                 console.error(error.responseText);             }                                            });                      }     else if($op == 'unfollow')     {                        $.ajax({             type : 'POST',             url : 'ajax_service.php',             dataType : 'json',             data: {                 op : $op,                 other_profile_id : $('#other_profile_id').text()                         },             success : function(data){             },             error:function (error){                 console.error(error.responseText);             }            });     } });   

Editar: Basado en la respuesta, necesito explicar la funcionalidad;

  • Si no se sigue un usuario, el enlace muestra el valor 'Siga'.
  • Si el usuario ya ha seguido, se muestra el valor 'Siguiente', debe disparar el evento de mouse cuando el mouse esté sobre el enlace.
  • Si el mouse está sobre el enlace y el valor es 'Siguiente', entonces el valor del enlace debe ser 'Dejar de seguir'.
  • Si el mouse está fuera del enlace, debe mostrar el valor 'siguiente' nuevamente.
  • Si el usuario no se sigue, muestra el valor 'Siga' enlace.

No quiero usar el evento de palanca. Porque la conmutación de conmutación solo atrapa el primer y segundo clic. Necesito una declaración de IF que controla si el valor del enlace es el siguiente o sigue.

Además, si el usuario sigue, muestra el siguiente valor, pero el evento de moxover no funciona. ¿Puedes por favor explicarme por qué? No podía entender lo que está pasando aquí.

Se apreciará cualquier sugerencia o ayuda.

P.S: Si quito alternar el evento y controlar el valor del enlace dentro de las llamadas AJAX, no funciona en absoluto.

Además, estoy pensando en asignar diferentes ID de enlace para enlaces y manejarlos por separado. Pero, creo que es el camino equivocado.

Original en ingles

It may seem to be very easy for you guys but I'm kinda new in jquery and ajax. I've looked everywhere and couldn't solve the problem for hours. My problem is the following ;

I have a html link with class name follow

<a href="#" class="follow">  {if $is_following == 0} follow {else} following {/if}  </a> 

the if-else statement is just a smarty template engine usage. it's very simple. if the user is following other user, then show 'follow' value, else show 'following' value.

My jquery is the following ;

var $values; $('.follow').mouseover(     function()     {         $values = $(this).html();         if($values == 'following')         {             $(this).html('unfollow');         }     } );  $('.follow').mouseout(      function()     {         $(this).html($values);     } );  $('.follow').toggle(      function(){         $(this).html('following');         $values = "following";     },     function(){         $(this).html('follow');         $values = "follow";          } );  //follow ajax call     $('.follow').click(function(){      var $op = $(this).html();     var $other_profile_id = $('#other_profile_id').text();      if($op == 'follow')     {                            $.ajax({             type : 'POST',             url : 'ajax_service.php',             dataType : 'json',              data: {                 op : $op,                 other_profile_id : $other_profile_id             },                       success : function(data){                             },             error:function (error){                 console.error(error.responseText);             }                                            });                      }     else if($op == 'unfollow')     {                        $.ajax({             type : 'POST',             url : 'ajax_service.php',             dataType : 'json',             data: {                 op : $op,                 other_profile_id : $('#other_profile_id').text()                         },             success : function(data){             },             error:function (error){                 console.error(error.responseText);             }            });     } }); 

EDIT : Based on answer, I need to explain functionality;

  • If a user is not followed, the link shows 'follow' value.
  • If the user has already followed, 'following' value is showed, it should fire the mouseover event when mouse is over the link.
  • If mouse is over the link and the value is 'following', then the link value should be 'unfollow'.
  • If mouse is out on the link it should show the value 'following' again.
  • If the user is not followed, it shows 'follow' value on link.

I don't want to use toggle event. Because toggle just catches the first and second click. I need an if statement which controls whether link value is follow or following.

Moreover, if the user follows, it shows following value but mouseover event doesn't work. Can you please explain me why ? I couldn't understand what's happening here.

Any suggestions or helps will be appreciated.

P.S : If I remove toggle event and control the value of link inside ajax calls, it doesn't work at all.

Moreover, I'm thinking to assign different link id s to links and handle them seperately. But, I think it is the wrong way.

        

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

En varios lugares tiene declaraciones del formulario:

  index < arraysize 2  

o

  index < arraysize 3  

Si los cambia a:

  index < arraysize 4  

¿Esto resuelve su problema?

Nota: 'NewText' sería cualquier texto que desee que se mantenga dentro de esa etiqueta.

Editar Nota2: Sé que no son todos sus problemas, pero quizás podría explicarle un poco más a su funcionalidad deseada.

Vea este violín para determinar si es lo que está buscando: http://jsfiddle.net/markschulteiss / Swp7x /

NOTA: Utiliza JSONP y Cross Domain y simplemente usa el valor devuelto hacia atrás, pero puede obtener la parte AJAX que funciona según sea necesario para usted. Puse en un campo para mostrar el valor del estado actual visualmente para ayudarlo a entender el funcionamiento.

 

In several places you have statements of the form:

$(this).html(); 

OR

$(this).html('sometext');  

If you change these to:

$(this).text();   $(this).text('newtext');  

does this resolve your issue?

NOTE: 'newtext' would be whatever text you wish to be held within that tag.

EDIT NOTE2: I KNOW that is not ALL of your issues, but perhaps you could explain your desired functionality a little more clearly.

See this fiddle to determine if that is what you are looking for: http://jsfiddle.net/MarkSchultheiss/Swp7x/

NOTE: it uses jsonp and cross domain and simply uses the returned value echoed back, but you can get the ajax part working as needed for you. I put in a field to show the value of the current state visually to perhaps help you understand the workings.

 
 
       
       

Relacionados problema

0  La variable de categoría PrestaShop $ no funciona dentro de otra  ( Prestashop category variable doesnt work within another if ) 
Yo uso PrestaShop y necesito agregar una presentación de diapositivas específica para la categoría- & gt; ID 1 en la parte superior de los productos de la cat...

0  CS-Cart Obtener Multi-Vendor nombre del proveedor de administración en la página del producto sabiendo $ product.company_id  ( Cs cart get multi vendor vendor admin name on product page knowing product comp ) 
En un sitio de múltiples proveedores, En la página del producto en el CS-Cart tengo acceso a muchas variables sabelotodo, pero no a Primera del administrador ...

0  Expresión regular para coincidir {if cond} foo {else} bar {/ if}  ( Regular expression to match if condfooelsebar if ) 
Estoy teniendo dificultades para desechar los bits de la expresión que no quiero, y mantener los bits que hago. Se encuentra el problema, dada la cadena de ...

95  ¿Qué son los archivos .tpl? PHP, diseño web  ( What are tpl files php web design ) 
Alguien quiere que redise un sitio en PHP (videocmos). Pero cuando le pedí que me enviara la fuente que me ha dado archivos * .tpl en lugar de * .php. Hay alg...

2  ¿Cómo hacer información de depuración de salida inteligente cuando la plantilla no se compila?  ( How to make smarty output debug info when template fails to compile ) 
Ya estoy configurando su opción debugging en true , pero cuando hay un error en la plantilla Smarty (es decir, no hay un complemento correspondiente para u...

4  Si estoy usando CakePHP, ¿necesito usar SmartTemplates también?  ( If i am using cakephp do i need to use smartytemplates too ) 
Si estoy usando CakePHP, ¿necesito usar SmartTemplates también? ...

7  ¿Cuál es la mejor manera de manejar la recursión en Smarty?  ( What is the best way to handle recursion in smarty ) 
Encontré un par de maneras de manejar la recursión en Smarty, en su mayoría basándose en incluidas las plantillas en sí mismas, lo que parece ridículo desperd...

61  ¿Por qué debería usar el sistema de plantillas en PHP? [cerrado]  ( Why should i use templating system in php ) 
cerrado . Esta pregunta es basada en opinión . Actualmente no está aceptando respuestas. ¿...

1  ¿Por qué es posible acceder a las variables en plantillas inteligentes con PrestaShop?  ( Why is it possibile to access variables in smarty templates with prestashop ) 
¿Qué es el archivo (o archivos) que me permiten acceder a todas las variables en plantillas Smarty escritas en otros archivos PHP? No puedo encontrar una fu...

1  Smarty: ¿Hay alguna manera de detectar si todas las variables esperadas se pasaron a la plantilla?  ( Smarty is there a way to detect whether all expected variables were passed to t ) 
Digamos que tengo un archivo de plantilla inteligente con el siguiente contenido: <div> var 1: {$var1}<br> var 2: {$var2} </div> y hago...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos