【问题标题】:jQuery "Chosen" for Select Boxes - how to apply styling after AJAX loads the select element选择框的 jQuery“选择” - 如何在 AJAX 加载选择元素后应用样式
【发布时间】:2012-08-31 01:22:08
【问题描述】:

所以我试图在通过XAJAX 加载后将Chosen jQuery plugin 应用于选择框。代码如下:

通常,我从页面加载开始,所有带有该类的选择框都正确设置了适当的样式:

$(document).ready( function () {        
    $(".chzn-select").chosen();
});

接下来,我有一个函数,它使用 XAJAX 在页面上的指定 DIV 中显示新的选择框。这工作正常。但是,Chosen 的样式并非应有的样式。

我也尝试在其中添加延迟,因为我在一些论坛上读到这对某些人有用。它不起作用....

function getNewSelect(property_id){
    xajax_getNewSelect();
    $(".chzn-select-ajax").delay(5).chosen();
}

有人有什么想法吗?

【问题讨论】:

  • 我在设置 selected() 后做了 $(".chosen-container").width('100%')

标签: jquery select jquery-chosen


【解决方案1】:

xajax 是做什么的?

delay 只是延迟动画,对其他功能没有影响。

如果你想延迟一个函数使用:

setTimeout(function() { $(".chzn-select-ajax").chosen(); }, 500);

【讨论】:

  • 我为 xajax 添加了一个链接,让我试试这个。
  • 如果我将延迟设置得足够长,这可行,但看起来很荒谬......如果延迟太短,它就不起作用。还有其他想法吗?
  • 然后您需要在 xajax 调用中添加一个回调,该回调会在完成时触发此操作。我没有意识到 xajax 是异步的。
  • 嗯....啊,这就是问题所在。我怎么能用那个做回调,你知道吗?
  • 在 PHP 中看起来像:$objResponse->script("$(this).chosen()");(但我不确定)。
【解决方案2】:
<script language="javascript" type="text/javascript">
    $(function () {
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(loadControlDuringAjax);
        loadControlDuringAjax();
    });
    function loadControlDuringAjax() {
        $(".chzn-select").chosen(); $(".chzn-select-deselect").chosen({ allow_single_deselect: true });
    }
</script>

这对我很有用

希望这能解决您的问题

【讨论】:

    猜你喜欢
    • 2011-02-18
    • 2016-04-27
    • 2011-01-04
    • 1970-01-01
    • 2023-04-06
    • 2019-05-21
    • 2012-01-11
    • 2020-10-26
    • 1970-01-01
    相关资源
    最近更新 更多