2013-04-02 1 views
0

Я использую highslide в сочетании с high-картами, и я хочу изменить кнопку закрытия, а более конкретно, я хочу вызвать дополнительную функцию, когда пользователь нажимает кнопку «X» ,Модификация кнопки закрытия «X» всплывающих окон с высоким уровнем громкости

Когда я проверять, что кнопка «X», я получаю это в моей консоли

<a href="#" title="Close (esc)" onclick="return hs.close(this)"><span>Close</span></a> 

Я хочу сделать что-то вроде этого

<a href="#" title="Close (esc)" onclick="return hs.close(this);myotherfunction();"><span>Close</span></a> 

Но я не могу найти, где код который находится.

Я попытался добавить это в свой заголовок в сам файл html, в дополнение к highslide.config.js, чтобы вручную переопределить, но он не сработал.

hs.registerOverlay({ 
    html: '<div class="closebutton" onclick="return hs.close(this)" title="Close"></div>', 
    position: 'top right', 
    fade: 2 // fading the semi-transparent overlay looks bad in IE 
}); 

Может ли кто-нибудь помочь мне?

////////////////////////////// обновлено Благодаря Джеффу Б, мне удалось выполнить желаемую задачу, используя код, который выглядит так (хотя пример, показанный Джеффом Б также работает):

cursor: 'pointer', 
point: { 
    events: { 
     click: function(event) { 
      hs.htmlExpand(null, { 
       pageOrigin: { 
        x: this.pageX, 
        y: this.pageY 
       }, 
       headingText: this.ticker, 
       maincontentText: '<b>Detail:</b> ' + this.info, 
       width: 250 
      }); 

      alert('function goes here'); 

      hs.Expander.prototype.onBeforeClose = function(sender) { 
       alert('function goes here'); 
      }    
     }, 
    } 
}, 

ответ

4

Зачем нужно модифицировать кнопку? Highslide обеспечивает onBeforeClose прототип:

hs.Expander.prototype.onBeforeClose = function (sender) { 
    myotherfunction(); 
} 

Существует также onAfterClose прототип, если вы хотите другой отсчет времени.

onBeforeClose Documentation

Демо: http://jsfiddle.net/xjKFp/

+0

Большое вам спасибо за это. Вместо того чтобы сделать его отдельной функцией внизу, я включил ее внутри событий и скобки click: function(). как в моем обновленном сообщении. Есть ли разница в том, чтобы делать это таким образом и делать это по-своему? любые плюсы и минусы? – D3Chiq

+0

@ D3Chiq: Как вы это делаете, вы применяете функцию прототипа * каждый раз, когда вы открываете график. Вы действительно хотите сделать это только один раз. Выполнение этого так тратит ресурсы и может вызвать проблемы. Единственная причина, по которой вы хотели бы сделать это так: функция должна изменяться каждый раз, когда вы открываете график, и даже тогда может быть лучший способ. –