0

まだDOMにない要素にカスケード関数をバインドするにはどうすればよいですか:

(function ($) {
    $.fn.cascade = function (options) {
        var defaults = {};
        var opts = $.extend(defaults, options);

     // REST OF THE CODE NOT IMPORTANT FOR THE QUESTION //

    };
})(jQuery);

読み込まれる Partialview には次のものが含まれます。

@Html.DisplayNameFor(m => m.PTDistrict_Id)
@Html.DropDownListFor(m => m.PTDistrict_Id, Model.PTDistrictList, HeelpResources.PTDistrictViewDropDownListFirstRecord, new { id = "districtDropdown" })
@Html.ValidationMessageFor(m => m.PTDistrict_Id)

私はこれを試しましたが、運がありません:

$(document).on("change", "#districtDropdown", function () {
    $.cascade({
        url: "/Address/ListCouncilByDistrict",
        paramName: "districtId",
        firstOption: 'Selecione o Concelho...',
        childSelect: $("#councilDropdown")
    });
});

何か案は?ありがとう。

4

3 に答える 3

0

次のようなものがあなたの状況でうまくいくかもしれません:

<select>
    <option class="event" data-action="Cascade" data-someParameter="fooBar">Foo</option>
</select>  
    <script>

    var Event = {
      Cascade: function(ele){
      //enter your actual cascade function.
         alert(ele.attr("data-someParameter")); //alerts "123"
      };
    };

    $(".event").on("click",function(){
       var ele = $(this);
       Event[ele.attr("data-action")](ele);
    });

    </script>
于 2013-03-19T18:33:08.767 に答える
0

そのように

$(document).on("change", "#districtDropdown", function () {
    $(this).cascade({
      ...
    });
});
于 2013-03-19T18:28:18.197 に答える
0

あなたはそれをすることはできません。限目...

ただし、ライブイベント ハンドラを使用することはできます。説明が言うように:

現在および将来において、現在のセレクターに一致するすべての要素のイベント ハンドラーをアタッチします。

于 2013-03-19T18:29:23.400 に答える