Неприятный обход, но, безусловно, возможно использовать вложенный запрос. Создайте временную таблицу MYVALUES со столбцом в ней. Вставьте свой список значений в таблицу MYVALUES. Затем выполните
select my_column from my_table where search_column in ( SELECT value FROM MYVALUES )
Ужасно, но жизнеспособной альтернативой, если ваш список значений очень велик.
Этот метод имеет дополнительное преимущество потенциально лучших планов запросов от оптимизатора (проверьте страница для нескольких значений, таблицы могут быть только один раз вместо одного значения и т. д.) могут сэкономить накладные расходы, если ваша база данных не кэширует подготовленные операторы. Ваши «INSERTS» должны выполняться в пакетном режиме, и таблица MYVALUES может потребоваться изменить, чтобы иметь минимальную блокировку или другие высоконадежные защиты.
С jQuery 1.7 вперед событие API было обновлено, .bind()
/ .unbind()
все еще доступны для назад совместимости, но предпочтительный метод использует на () / прочь () функции. Ниже теперь был бы,
$('#myimage').click(function() { return false; }); // Adds another click event
$('#myimage').off('click');
$('#myimage').on('click.mynamespace', function() { /* Do stuff */ });
$('#myimage').off('click.mynamespace');
<час> В Вашем примере кода Вы просто добавляете другое событие щелчка к изображению, не переопределяя предыдущее:
$('#myimage').click(function() { return false; }); // Adds another click event
Оба события щелчка будут тогда запущены.
, Поскольку люди сказали, что можно использовать, развязывают для удаления всех событий щелчка:
$('#myimage').unbind('click');
, Если Вы хотите добавить единственное событие и затем удалить его (не удаляя других, которые, возможно, были добавлены) тогда можно использовать пространство имен события:
$('#myimage').bind('click.mynamespace', function() { /* Do stuff */ });
и удалить просто Ваше событие:
$('#myimage').unbind('click.mynamespace');
возможно, развязывать метод будет работать на Вас
$("#myimage").unbind("click");
Это может быть сделано при помощи развязывать функции.
$('#myimage').unbind('click');
можно добавить несколько обработчиков событий к тому же объекту и событию в jQuery. Это означает добавлять, что новый не заменяет старые.
существует несколько стратегий изменения обработчиков событий, таких как пространства имен события. Существуют некоторые страницы об этом в документах онлайн.
Взгляд на этот вопрос (это - то, как я узнал о, развязывают). Существует некоторое полезное описание этих стратегий в ответах.
, Как считать связанные функции обратного вызова при наведении курсора в jquery
This wasn't available when this question was answered, but you can also use the live() method to enable/disable events.
$('#myimage:not(.disabled)').live('click', myclickevent);
$('#mydisablebutton').click( function () { $('#myimage').addClass('disabled'); });
What will happen with this code is that when you click #mydisablebutton, it will add the class disabled to the #myimage element. This will make it so that the selector no longer matches the element and the event will not be fired until the 'disabled' class is removed making the .live() selector valid again.
This has other benefits by adding styling based on that class as well.
Спасибо за информацию. очень полезно, я использовал его для блокировки взаимодействия со страницей в режиме редактирования другим пользователем. Я использовал его вместе с ajaxComplete. Не обязательно такое же поведение, но в чем-то похожее.
function userPageLock(){
$("body").bind("ajaxComplete.lockpage", function(){
$("body").unbind("ajaxComplete.lockpage");
executePageLock();
});
};
function executePageLock(){
//do something
}