是否可以在Blazor应用程序中集成jQuery UI组件?

时间:2019-10-18 11:31:20

标签: jquery-ui client-side blazor

我想在Blazor客户端应用程序中集成jQuery UI组件。 Spinner组件在jQuery UI中看起来更好。这可能吗?如何整合呢?

我希望将此Spinner组件集成到我的Blazor客户端应用程序中吗?

https://jqueryui.com/spinner/

1 个答案:

答案 0 :(得分:2)

这是为JQuery或JS控件创建包装的方法:

1.-将JS行为包含在函数中:

<script>
  var spinner = null;
  window.myWrapperKSUIfunctions = {

    initialize: function () {
        spinner = $( "#spinner" ).spinner();
        $( "button" ).button();
    },

    dissableclick: function () {
      if ( spinner.spinner( "option", "disabled" ) ) {
        spinner.spinner( "enable" );
      } else {
        spinner.spinner( "disable" );
      }
    },

    destroyclick: function () {
      if ( spinner.spinner( "instance" ) ) {
        spinner.spinner( "destroy" );
      } else {
        spinner.spinner();
      }
    },

    getvalueclick: function () {
      alert( spinner.spinner( "value" ) );
    },

    setvalueclick: function () {
      spinner.spinner( "value", 5 );
    },    
  };
</script>

别忘了包括其他JS / JQuery库。

2.-从blazor初始化控件:

@code {

    protected async override Task OnAfterRenderAsync(bool firstRender)
    {
        if (firstRender)
        {
            await JsRuntime.InvokeAsync<object>("myWrapperKSUIfunctions.initialize");
        }
    }

3.-从blazor调用JS函数:

  <button id="disable" 
          @onclick="@( ()=>JustCall("dissableclick") )" >
     Toggle disable/enable
  </button>
@code {

    ...
    protected async Task JustCall(string f)
    {
        wait JsRuntime.InvokeAsync<object>($"myWrapperKSUIfunctions.{f}"); 
    }

Check it out at blazorfiddle

demo

另外,请查看MatBlazor控件。