stopImmediatePropagation

stopImmediatePropagation

我有以下<sj:datepicker>

<sj:datepicker
    id="dateFrom_id%{index}"
    name="billingItems[%{index}].dateFrom"
    value="%{billingItems[#index].dateFrom}"
    displayFormat="dd.mm.yy"
    cssClass="customDatePicker"
    buttonImage="/images/icons/calendar-blue.png"
    parentTheme="css_custom"
    firstDay="1"
    onBeforeTopics="beforeShow"
/>


和以下beforeShow主题:

$.subscribe('beforeShow', function(event, data) {

    if($(event.originalEvent.input).attr('readonly')){
        // ned to stop event
    }
});


如何阻止该事件的传播。我努力了:

event.stopPropagation();
event.preventDefault();
event.stopImmediatePropagation();


但似乎没有任何效果。

最佳答案

不要使用event.stopImmediatePropagation();,而只能使用stopImmediatePropagation();

试试这个

$.subscribe('beforeShow', function(event, data) {

if($(event.originalEvent.input).attr('readonly')=="readonly"){
     stopImmediatePropagation();
    alert('hi');
}
});


警报行将不会执行。

另外,不要忘记在中使用readonly =“ true”。例如

<sj:datepicker
id="dateFrom_id"
name="dateFrom"
value="%{'today'}"
displayFormat="dd.mm.yy"
buttonImage="images/icon/Calendar-Blue.png"
cssClass="customDatePicker"
firstDay="1"
onBeforeTopics="beforeShow"
readonly="true"
/>

10-07 12:56