|
|
|
| не силен в js и jquery написал как мог) но явно один и тот же код дублируется, как его вынести в отдельную функцию ? а лучше класс..
$(document).ready(function() {
//track_zone_6 load page
jQuery.fn.exists = function() {
return $(this).length;
}
if($("#homepage").exists()) {
var user_id = $(".userbox").attr('id');
var site_id = $(".seefull").attr('id');
var zone_name = 'zone_6';
$.ajax({
type: "POST",
url: "call.php",
data: ({
'user_id' : user_id,
'site_id': site_id,
'zone_name' : zone_name
}),
success: function(msg){
alert( "Data Saved: " + msg );
}
});
}
$('#zone_1, #zone_2, #zone_4, #zone_5').click(function() {
var user_id = $(".userbox").attr('id');
var site_id = $(".seefull").attr('id');
var zone_name = this.getAttribute('id');
//send ajax request
$.ajax({
type: "POST",
url: "call.php",
data: ({
'user_id' : user_id,
'site_id': site_id,
'zone_name' : zone_name
}),
success: function(msg){
alert( "Data Saved: " + msg );
}
});
$('#'+zone_name).unbind('click');
});
});
|
| |
|
|
|
|
|
|
|
для: asker
(23.06.2013 в 21:25)
| | на первый взгляд всё более-менее нормально. да и нету в js такого понятия как класс, по крайней мере встроенных возможностей языка, которые бы позволяли писать классы и создавать их объекты, нет. есть только сами объекты | |
|
|
|
|
|
|
|
для: asker
(23.06.2013 в 21:25)
| | Покажите исходный html-код, пояснив чего нужно, тогда будет видно как. А такое конечно никуда не годится.
А это для чего?
jQuery.fn.exists = function() {
return $(this).length;
}
|
Обращаясь к элементу используя селектор класса, всегда указывайте тег элемента, то есть не ".userbox", а "div.userbox". Обращение ".userbox" равноценно обращению "* .userbox" и заставляет просматривать все элементы документа. | |
|
|
|
|
|
|
|
для: asker
(23.06.2013 в 21:25)
| | Что-то тут развели "философию".... А на конкретный вопрос ответа так и не прозвучало.
Выносим код в функцию.
Допустим исходный код такой:
if(a===b){
// тут производятся какие-то действия, заменим их для краткости на:
alert('Эквивалентны')
}else if(a==b){
// тут производятся те же самые действия, но другой вывод:
alert('Равны')
}else{
// тут снова выполняется тот же самый код, но с третим значением:
alert('Не эквивалентны, не равны')
}
| переписываем его так:
function myFunc(a){
// тут производятся общие для всех случаев действия, в следуещей строке используем значение аргумента:
alert(a)
}
if(a===b){
myFunc('Эквивалентны')
}else if(a==b){
myFunc('Равны')
}else{
myFunc('Не эквивалентны, не равны')
}
|
| |
|
|
|
|
|
|
|
для: Sfinks
(24.06.2013 в 13:23)
| | Модератор совестливый, стирает все подряд. ) Trigger, вот что нужно, а не плодить функции, когда она уже есть. | |
|
|
|