it-swarm-es.com

Elegido en AJAX contenido

Estoy trabajando en un sitio (componente personalizado y plantilla) donde quiero que algunos enlaces muestren su contenido en una ventana emergente. La ventana emergente en sí parece funcionar bien, pero noté que los cuadros de selección no se ven afectados por formbehavior.chosen, cuando se llama con ajax.

Estoy aplicando elegido con JHtml::_('formbehavior.chosen', 'select'); en mi component.php en la parte del sitio. AJAX se carga con format = raw, así que pensé que podría funcionar si ponía esto en el archivo de plantilla del componente real, pero esto no funcionó. Pensé que podría ser una función para vuelva a aplicar el elegido a todos los selectores establecidos, pero no ha encontrado uno.

¿Cuál sería el camino a seguir para que mis menús seleccionados elijan el estilo en la carga ajax?

El archivo de componentes component.php se ve así:

<?php

// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// Require helper file
JLoader::register('ComponentHelper', JPATH_COMPONENT . '/helpers/component.php');

// Add Stylesheets
JHtml::stylesheet('com_component/style.css', array(), true);

// Add Scripts
JHtml::_('bootstrap.framework');
JHtml::script('com_component/script.js', false, true);

// Add chosen
JHtml::_('formbehavior.chosen', 'select');

// Get an instance of the controller
$controller = JControllerLegacy::getInstance('Component');

// Perform the Request task
$input = JFactory::getApplication()->input;
$controller->execute($input->get('task'));

// Redirect if set by the controller
$controller->redirect();

La ventana emergente se llama con las plantillas template.js

jQuery(function($) {
    $('a.popup')
        .click(function() {
            event.preventDefault();

            var url = $(this).attr('href') + '&format=raw';

            $('#popupDialogue .popup-content').html('');
            $('#popup')
                .addClass('active')
                .addClass('loading');

            $.get( urlGet, function( data ) {
                $('#popupDialogue .popup-content').html(data);
                $('#popup')
                    .removeClass('loading');
            });
        });
});
3
Tom

Cambiar el siguiente código:

$.get( urlGet, function( data ) {
  $('#popupDialogue .popup-content').html(data);
  $('#popup')
    .removeClass('loading');
});

a

$.get( urlGet, function( data ) {
  $('#popupDialogue .popup-content').html(data);
  $('#popup')
    .removeClass('loading');
  $('#popupDialogue .popup-content select').chosen();
});
1
Nagarjun